0

私はsudokoソルバー(python)に取り組んでいます。私の方法は、ゲーム ツリーを使用して、DFS アルゴリズムによって数字の各セットの可能な順列を探索することです。

問題を分析するために、可能な有効および無効なsudoko テーブルの数を知りたいです。

-> 9 1、9 2、...、9 9 を持つ 9*9 テーブル。

(これはこの質問とまったく同じではありません)

私の解決策は次のとおりです。

1- 最初に 1 の 9 つのセルを選択します: (*)
代替テキスト
2- 同様に (1) 他の数字の場合 (毎回、残りの使用可能なセルから 9 つのセルが削除されます): C(81-9,9) 、 C(81- 9*2,9) .... =
代替テキスト
3- 最後に結果に 9 を掛けます! ((*) 内の 1s-2s-3s...-9s の順列)これは、この質問
代替テキスト
の受け入れられた回答とは異なりますが、問題は同等です。私は何を間違えましたか?

4

3 に答える 3

2

標準的な 9×9 グリッドの有効な数独ソリューション グリッドの数は、2005 年に Bertram Felgenhauer と Frazer Jarvis によって 6,670,903,752,021,072,936,960 であると計算されました。

数独の数学| ソース

あなたのソリューションの問題は、利用可能なセルから毎回9セルを削除しても、必ずしも有効なグリッドが作成されるとは限らないことだと思います。つまり、9 つのセルを削除するだけでは十分ではありません。

だから81!/ (9!)^9 は、実際の有効な解よりもはるかに大きな数です。

編集:

要素が繰り返される順列

有効な数独テーブルだけでなく、すべてのテーブルが必要な場合、ソリューションはほぼ正しいです。

次の式があります。

(a+b+c+...)! /【あ!b! c! ....]

男の子が 5 人、女の子が 3 人いて、8 席あるとします。

(5+3)! / (5! 3!)

あなたの問題はこれに似ています。

9 個の 1 、9 個の 2 … 9 個の 9 があります。と81か所

答えは (9+9+...) でなければなりません! / (9!)^9

ここで、もう一度 9 を掛けると! 次に、これにより、それらをシャッフルして番号に重複したアレンジメントが追加されます。

于 2010-04-03T10:02:13.310 に答える
1

あなたが間違っていたのは最後のステップでした: 答えに を掛けるべきではありません9!。可能な正方形をすべて数えました。

可能な数独表を数えるとき、これはあまり役に立ちません。あなたができるもう1つのことは、「行条件」が保持されているテーブルを数えることです。これは、行ごとに(9!)^91つの順列を選択するだけだからです。1..9

数独の問題にさらに近いのは、ラテン方陣を数えることです。ラテン方格は、「行条件」と「列条件」の両方を満たす必要があります。これはすでに難しい問題であり、閉形式の公式は知られていません。Sudoku はラテン方陣に「subsquare-condition」を追加したものです。

于 2010-04-03T10:22:43.273 に答える
1

このウィキペディアの記事(またはこの OEIS シーケンス) によると、およそ 6.6 * 10^21 の異なる数独正方形があります。

于 2010-04-03T10:06:51.247 に答える