ホームページ >バックエンド開発 >PHPチュートリアル >お気に入りのパズル: PHP を使用して 9 マスのグリッドを印刷する - 三次魔方陣_PHP チュートリアル

お気に入りのパズル: PHP を使用して 9 マスのグリッドを印刷する - 三次魔方陣_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:53:00737ブラウズ

ignore_user_abort(true);
set_time_limit(0);
$tmp = array();
関数 getArr($arr='')
{
for ($i = 1; $i if ( empty($arr) ) {
$arr[] = $i;
elseif (in_array($i, $arr) ) {
続けます;
} その他 {
$arr[] = $i;
}
if ( count($arr) getArr($arr);
}
if ( count($arr) 1 ) {
array_pop($arr);
続けます;
elseif ( count($arr) == 1 ) {
unset($arr);
続けます;
elseif ( checkArr($arr) ) {
$GLOBALS['tmp'][] = $arr;
}
}
}
関数 checkArr($arr)
{
$m = 配列();
$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 として $v) {
if ( $v == 8 ) {
true を返します;
} その他 {
false を返します;
}
}
}
$startTime = microtime(true);
getArr();
$endTime = マイクロタイム(true);
for( $i=0; $i $arr = $tmp[$i];
echo $str=<<


















fs;
}
echo '

共花费時間:';
エコーラウンド($endTime - $startTime, 3);
echo '秒

';www.2cto.com
死ぬ;
穷个の方法で完了、8つの結果
我的電脑大约要花10.5秒時間
ボタンを使用して完了し、4 つ、5 つまで簡単に追加できます……
花は20分かけて書き上げた、不可能な条件を排除できれば一秒もかからずに達成できる
你们最喜欢の智力题
作者:zdrjlamp

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478057.html技術記事無視_ユーザー_中止(真); set_time_limit(0); $tmp = 配列(); function getArr($arr=) { for ($i = 1; $i = 9; $i++) { if ( empty($arr) ) { $arr[] = $i; } elseif (in_array($i, $arr) ) {...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
{$arr[0]} {$arr[1]} {$arr[2]}
{$arr[3]} {$arr[4]} {$arr[5]}
{$arr[6]} {$arr[7]} {$arr[8]}