我在http://www.apl.jhu.edu/~hall/java/NQueens.java处可以运行实现,它解决了O(n)时间复杂度的N-queen问题。它速度惊人,无需搜索即可找到一个解决方案。但是,我并不清楚背后的逻辑。 为什么他们将问题分成3:奇数,偶数(但不是6k形式),甚至(但不是形式为6k + 2)。 任何人都可以检查代码并为我更详细地解释(仅限逻辑)吗?
答案 0 :(得分:0)
他们分裂了这个问题,因为两个建筑都没有涵盖所有案例可能如果你试图证明它们在坏的情况下工作,你会发现某个数字不是unit模数。在构造受约束的组合对象时,这是一种非常典型的事态。例如,存在Steiner triple systems阶6k + 1和6k + 3,但是两个残差mod 6需要不同的结构。