C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 26 を表示中)
■11888 / )  Re[3]: 数独の問題を自動作成するプログラムについて
□投稿者/ Jitta on the way (69回)-(2007/12/23(Sun) 16:51:07)
No11881 (774RR さん) に返信
> だからかぶってたら入れ替えるというロジック自体がまずいわけで
> 最初からかぶらない値を入れるようにしようよ。
>
> 効率なんかドーデもいいではなくて、効率を考えないで作ると有限時間に答えが出ないよ
>
> この手のパズルはいかにうまく枝刈りするか次第なので
> テキトーにプログラム組んでもすぐ行き詰るのがオチ(今行き詰ってるんだろ?)
>

賛成

ランダムな場所にランダムな数字を入れて、ダブっていたら入れ替える

だと、効率が悪いです
いつ問題ができるかわからないものを、待ち続けていられますか?

とりあえず 3×3 なら、電話番号順に0〜9の配列と考え、ランダムな位置に1〜9の数字を順にいれていってもいいはずじゃないでしょうか

それよりも、1〜9までならんでいる配列から適当に2つ取り出し、入れ替えます。これを何回か繰り返し、場所の配列にいれていけば、絶対にダブらないし、必ず一定の時間で完了します


このように、刈り込みを行います。
返信 編集キー/


管理者用

- Child Tree -