<?php
error_reporting(2037);
set_time_limit(60000);

$arBrcts = array(
  '  A O1   B  O2  C  O3 D  ',
  ' (A O1   B) O2  C  O3 D  ',
  ' (A O1   B  O2  C) O3 D  ',
  ' (A O1   B) O2 (C  O3 D) ',
  '((A O1   B) O2  C) O3 D  ',
  '  A O1  (B  O2  C) O3 D  ',
  '  A O1  (B  O2  C  O3 D) ',
  '  A O1  (B  O2 (C  O3 D))',
  '  A O1   B  O2 (C  O3 D) '
  );
$arOpList = array('+','-','*','/');
for($i=0;$i<4;$i++){ for($j=0;$j<4;$j++){ for($k=0;$k<4;$k++){
  $arOperators[] = $arOpList[$i] . $arOpList[$j] . $arOpList[$k];
} } }

function calc10($bfOp,$nm4nms){
  global $arBrcts;
  $fl10 = FALSE;
  foreach($arBrcts as $bfBrcts){
    $bfExpr = str_replace("A",substr($nm4nms,0,1),$bfBrcts);
    $bfExpr = str_replace("B",substr($nm4nms,1,1),$bfExpr);
    $bfExpr = str_replace("C",substr($nm4nms,2,1),$bfExpr);
    $bfExpr = str_replace("D",substr($nm4nms,3,1),$bfExpr);
    $bfExpr = str_replace("O1",substr($bfOp,0,1),$bfExpr);
    $bfExpr = str_replace("O2",substr($bfOp,1,1),$bfExpr);
    $bfExpr = str_replace("O3",substr($bfOp,2,1),$bfExpr);
    eval("\$nmResult = $bfExpr;");
    if(round($nmResult,10) == 10.0){
      print("$bfExpr = $nmResult<br>");
      $fl10 = TRUE;
    }
  }
  return $fl10;
}

?>
<html>
<head>
<title>4つの数字を四則演算で10にする、の総当り</title>
</head>
<body style='font-family:"MS Gothic",monospace;'>
<?php
for($l=0;$l<10000;$l++){
  $arResult[$l] = FALSE;
  $bfNm = sprintf("%04d",$l);
  print("<a name='$bfNm'><span style='color:#0000ff;'>$bfNm</span></a><br>");
  foreach($arOperators as $bfOp){
    if(calc10($bfOp,$bfNm)) {
      $arResult[$l] = TRUE;
    }
  }
  flush();
}
print("<br><span style='color:#00ff00;'>//:");
print("0000000000");
print("1111111111");
print("2222222222");
print("3333333333");
print("4444444444");
print("5555555555");
print("6666666666");
print("7777777777");
print("8888888888");
print("9999999999</span>");
print("<br><span style='color:#00ff00;'>//:");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789");
print("0123456789</span>");
for($l=0;$l<10000;$l++){
  $bfNm = sprintf("%04d",$l);
  if(($l % 100) == 0){
    flush();
    print("<br><span style='color:#00ff00;'>" . substr($bfNm,0,2) . ":</span>");
  }
  if($arResult[$l] == TRUE){
    print("<a href='#$bfNm'><span style='color:#0000ff;'>"
          . substr($bfNm,3,1) . "</span></a>");
  } else {
    if($arResult[substr($bfNm,0,1) . substr($bfNm,1,1) . substr($bfNm,3,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,0,1) . substr($bfNm,1,1) . substr($bfNm,3,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,0,1) . substr($bfNm,2,1) . substr($bfNm,1,1)
                 . substr($bfNm,3,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,0,1) . substr($bfNm,2,1) . substr($bfNm,1,1)
            . substr($bfNm,3,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,0,1) . substr($bfNm,2,1) . substr($bfNm,3,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,0,1) . substr($bfNm,2,1) . substr($bfNm,3,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,0,1) . substr($bfNm,3,1) . substr($bfNm,1,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,0,1) . substr($bfNm,3,1) . substr($bfNm,1,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,0,1) . substr($bfNm,3,1) . substr($bfNm,2,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,0,1) . substr($bfNm,3,1) . substr($bfNm,2,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,0,1) . substr($bfNm,2,1)
                 . substr($bfNm,3,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,0,1) . substr($bfNm,2,1)
            . substr($bfNm,3,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,0,1) . substr($bfNm,3,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,0,1) . substr($bfNm,3,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,2,1) . substr($bfNm,0,1)
                 . substr($bfNm,3,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,2,1) . substr($bfNm,0,1)
            . substr($bfNm,3,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,2,1) . substr($bfNm,3,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,2,1) . substr($bfNm,3,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,3,1) . substr($bfNm,0,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,3,1) . substr($bfNm,0,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,1,1) . substr($bfNm,3,1) . substr($bfNm,2,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,1,1) . substr($bfNm,3,1) . substr($bfNm,2,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,0,1) . substr($bfNm,1,1)
                 . substr($bfNm,3,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,0,1) . substr($bfNm,1,1)
            . substr($bfNm,3,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,0,1) . substr($bfNm,3,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,0,1) . substr($bfNm,3,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,1,1) . substr($bfNm,0,1)
                 . substr($bfNm,3,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,1,1) . substr($bfNm,0,1)
            . substr($bfNm,3,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,1,1) . substr($bfNm,3,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,1,1) . substr($bfNm,3,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,3,1) . substr($bfNm,0,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,3,1) . substr($bfNm,0,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,2,1) . substr($bfNm,3,1) . substr($bfNm,1,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,2,1) . substr($bfNm,3,1) . substr($bfNm,1,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,0,1) . substr($bfNm,1,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,0,1) . substr($bfNm,1,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,0,1) . substr($bfNm,2,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,0,1) . substr($bfNm,2,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,1,1) . substr($bfNm,0,1)
                 . substr($bfNm,2,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,1,1) . substr($bfNm,0,1)
            . substr($bfNm,2,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,1,1) . substr($bfNm,2,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,1,1) . substr($bfNm,2,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,2,1) . substr($bfNm,0,1)
                 . substr($bfNm,1,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,2,1) . substr($bfNm,0,1)
            . substr($bfNm,1,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } elseif($arResult[substr($bfNm,3,1) . substr($bfNm,2,1) . substr($bfNm,1,1)
                 . substr($bfNm,0,1)] == TRUE) {
      print("<a href='#" . substr($bfNm,3,1) . substr($bfNm,2,1) . substr($bfNm,1,1)
            . substr($bfNm,0,1) ."'><span style='color:#ff0000;'>"
            . substr($bfNm,3,1) . "</span></a>");
    } else {
      print(substr($bfNm,3,1));
    }
  }
}
?>
</body>
</html>