数独プログラミング
■ このスレッドは過去ログ倉庫に格納されています
0003( ・∀・)つ〃∩ヘェーヘェーヘェー
2010/08/26(木) 11:12:28十分実用的であったw)で書いてみた。
@mat=(
1,0,0, 2,3,0, 0,0,0,
0,0,8, 0,6,0, 5,0,0,
0,0,0, 0,0,5, 0,0,8,
0,0,3, 0,0,0, 0,2,9,
0,0,0, 5,0,0, 4,0,0,
9,0,0, 0,0,4, 0,3,0,
0,6,0, 0,0,0, 0,0,0,
0,0,1, 6,0,0, 0,7,0,
8,0,0, 0,7,0, 0,0,4
);
$t1 = (times)[0];
find(0);
sub find
{
my $k;
my $p=$_[0];
if( $p >= 80) {
printdata();
$t2 = (times)[0];
$t3 = $t2 - $t1;
print "$t3 秒\n";
exit;
}
if( $mat[$p]) {find( $p+1);}
else {
for( $k=1; $k<= 9; $k++) {
if( IsThisOK( $p, $k)) {
$mat[$p] = $k;
find( $p+1);
$mat[$p] = 0;
}
}
}
}
※インテンドの空白が全角になってるので注意
■ このスレッドは過去ログ倉庫に格納されています