关于九宫格算法的代码
程序员文章站
2022-06-13 10:15:40
...
1 ) { array_pop($arr); continue; } elseif ( count($arr) == 1 ) { unset($arr); continue; } elseif ( checkArr($arr) ) { $GLOBALS['tmp'][] = $arr; } }}function checkArr($arr){ $m = array(); $val = 4; if ($val == $arr[0] + $arr[1] - 9){ $m[] = $arr[0] + $arr[1] - 9; } if ($val == $arr[2] - $arr[3] * $arr[4]) { $m[] = $arr[2] - $arr[3] * $arr[4]; } if ($val == $arr[5] + $arr[6] - $arr[7]) { $m[] = $arr[5] + $arr[6] - $arr[7]; } if ($arr[5] != 0) { if ($val == $arr[0] + $arr[2] / $arr[5]) { $m[] = $arr[0] + $arr[2] / $arr[5]; } } if ($val == $arr[1] - $arr[3] * $arr[6]) { $m[] = $arr[1] - $arr[3] * $arr[6]; } if ($val == 9 - $arr[4] - $arr[7]) { $m[] = 9 - $arr[4] - $arr[7]; } $tmp = array_count_values($m); foreach ($tmp as $v) { if ( $v == 6 ) { return true; } else { return false; } }}$startTime = microtime(true);getArr();$endTime = microtime(true);for( $i=0; $i{$arr[0]} {$arr[1]} 9 {$arr[2]} {$arr[3]} {$arr[4]} fs;}echo ' {$arr[5]} {$arr[6]} {$arr[7]} 共花费时间:';echo round($endTime - $startTime, 3);echo '秒
';die;
仿照网上九宫格穷举代码,结果死循环的,请各位看看。
回复讨论(解决方案)
ignore_user_abort(true);set_time_limit(0);$tmp = array();function getArr($arr=''){ for ($i = 1; $i 1 ) { array_pop($arr); continue; } elseif ( count($arr) == 1 ) { unset($arr); continue; } elseif ( checkArr($arr) ) { $GLOBALS['tmp'][] = $arr; } }}function checkArr($arr){ $m = array(); $m[] = $arr[0] + $arr[1] + $arr[2]; $m[] = $arr[3] + $arr[4] + $arr[5]; $m[] = $arr[6] + $arr[7] + $arr[8]; $m[] = $arr[0] + $arr[3] + $arr[6]; $m[] = $arr[1] + $arr[4] + $arr[7]; $m[] = $arr[2] + $arr[5] + $arr[8]; $m[] = $arr[0] + $arr[4] + $arr[8]; $m[] = $arr[2] + $arr[4] + $arr[6]; $tmp = array_count_values($m); foreach ($tmp as $v) { if ( $v == 8 ) { return true; } else { return false; } }}$startTime = microtime(true);getArr();$endTime = microtime(true);for( $i=0; $i{$arr[0]} {$arr[1]} {$arr[2]} {$arr[3]} {$arr[4]} {$arr[5]} fs;}echo ' {$arr[6]} {$arr[7]} {$arr[8]} 共花费时间:';echo round($endTime - $startTime, 3);echo '秒
';die;//该片段来自于http://outofmemory.cn
这是网上的例子。
$a, 'b' => $b, 'c' => $c, 'd' => $d, 'e' => $e, 'f' => $f, 'g' => $g, 'h' => $h ); } } } } } } } } } return $ret;}?>
Array ( [a] => 2 [b] => 11 [c] => 4 [d] => 1 [e] => 0 [f] => 2 [g] => 7 [h] => 5 )
计算量有点大。。
上一篇: 一个PHP有关问题
下一篇: SqlServer 时间字段格式化