0

数独のように 9 行であるが、代わりに次のような 9 行がある場合

530070000
600195000
098000060
800060003
400803001
700020006
060000280
000419005
000080079

に変換する

534678912
672195348
198342567
859761423
426853791
713924856
961537284
287419635
345286179

もっと簡単だと思ったのですが、プログラムに入れると大きなギャップが残りました。

他の数字の邪魔にならなければ、各列をたどって最初の列の空きスペースに最小の数字を入れるだけでよいと思いましたが、進むにつれて、戻って戻って行かなければならないことに気付きました。より良いものにするために特定の番号を削除します。

適用される唯一の条件は、同じ列の数字が同じであってはならず、同じ行の数字が同じであってはならないということですが、ボックスがないことに注意してください。

何かアドバイス?

4

2 に答える 2

0

最初に、このターンの時点で埋められているセルのみを考慮して、各セルの可能なすべての数字を決定します。可能な数字が 1 つしかないセルがある場合は、それを選択し、影響を受けるセル (同じ行、列、および 3x3 の正方形) を再評価します。

可能性が 1 つしかないセルが見つからなくなった場合は、再帰的なバックトラッキングを使用します。

于 2012-10-04T13:28:26.323 に答える