1. ホーム
  2. algorithm

ユニークな解答を持つナンプレ盤を生成する方法

2023-08-03 10:11:51

質問

ユニークな解を持つ数独の盤面を生成するにはどうしたらよいのでしょうか。私が考えたのは、ランダムな盤面を初期化し、いくつかの数字を削除することでした。しかし、私の質問は、どのように私はソリューションの一意性を維持するのですか?

どのように解決するのですか?

簡単です。

  1. 効率的なバックトラック・アルゴリズムですべての解を見つける。
  2. 解が1つだけなら、終了。そうでない場合は、複数の解がある場合、ほとんどの解が異なる位置を見つける。この位置の数字を追加する。
  3. 1に進みます。

これよりずっと速い解決策が見つかるとは思えません。