1

http://www.apl.jhu.edu/~hall/java/NQueens.javaで入手可能な実装を実行しました。 これは、O(n)時間計算量のN-queen問題を解決します。それは驚くほど高速で、検索せずに1つの解決策を見つけるのに役立ちます。ただし、背後にあるロジックについてはよくわかりません。なぜ彼らは問題を3に分割するのですか?奇数、偶数(ただし、フォーム6kではない)、偶数(ただし、フォーム6k + 2ではない)。誰かがコードをチェックして、私のためにもっと詳細に説明できますか(ロジックのみ)?

4

1 に答える 1

0

どちらの構造もすべてのケースをカバーしていないため、問題を分割しています。おそらく、悪いケースでも機能することを証明しようとすると、特定の数がn を法とする単位ではないことがわかります。これは、制約付きの組み合わせオブジェクトを構築するときの非常に典型的な状況です。たとえば、次数 6k+1 と 6k+3 のシュタイナー三重系が存在しますが、6 を法とする 2 つの残基は異なる構成を必要とします。

于 2012-03-18T18:30:55.950 に答える