3

すべての数字には 9 つの位置があるという観点で数独を解こうとしています。これは私の数独の表現です:

数独

表から、番号5の数独の位置 (Row,Col) は (2,8)、(4,2)、(6,5) であることがわかります。

説明で行に言及する場合、次のような行を意味します。 行

たとえば、上の は行1です。

私がやったことは次のとおりです。

  • すべての行について、その行のすべての ROW-Value がalldifferentfromを使用して異なるかどうかを確認しic_globalます。
  • 上記と同じことを行いますが、次に COLUMN-Values に対して行います。
  • 行ごとに、平方数が異なるかどうかを確認します (毎回行と列の値を使用して計算されます) alldifferent。もう一度使用します。

上記のことは正常に機能し、数独の解決策は得られますが、正しい解決策ではありません。これは、もう 1 つ確認する必要があるためです。すべての位置が異なる必要があります。私のソルバーの現在の状態では、同じ位置に複数の数字がある解を得ることができました。fe: 23は両方とも位置(5,7)にある可能性があります。これは、すべての位置が異なるかどうかを確認していないためです。

この問題にどのように対処しますか?タプル形式の 1 つのリスト内のすべての位置を取得してから、すべてのタプルが異なるかどうかを確認しようとしましたが、何時間も苦労しており、本当に必死になっています。ここで解決策を見つけられることを願っています。

編集:コードを追加

コード

4

1 に答える 1