理论上,N皇后问题能否在多项式时间内解决?如果可以,它的最佳复杂度是什么?我找到了许多算法,但我没有找到确切的时间复杂度。是否有任何论文或文档提供其复杂度的确切数字?
(附言:显式解非常有趣,但我忘记说了,我希望找到所有解决方案。)
理论上,N皇后问题能否在多项式时间内解决?如果可以,它的最佳复杂度是什么?我找到了许多算法,但我没有找到确切的时间复杂度。是否有任何论文或文档提供其复杂度的确切数字?
(附言:显式解非常有趣,但我忘记说了,我希望找到所有解决方案。)
请注意,列举所有解决方案需要更长的时间。随着棋盘大小的增加,解决方案的数量呈超指数增长(http://oeis.org/A000170),因此即使使用
当 n 为偶数且不满足 (n mod 6 = 2) 时,在方格 (m, 2m) 和 (n/2 +m, 2m-1) 上放置皇后,其中 m = 1, 2, . . . , n/2。
当 n 为偶数且不满足 (n mod 6 = 0) 时,在方格 (m, 1+(2(m-1)+ n/2 - 1)mod n) 和 (n+1-m, n-(2(m-1)+n/2 -1)mod n) 上放置皇后,其中 m = 1,2,...,n/2。
当 n 为奇数时,使用 (1) 或 (2) 中适合的方法在 n-1 上放置皇后,然后在 (n,n) 上扩展一个皇后。
2^O(x)
时间也无法枚举它们(但只需要O(n)
空间)。您是指寻找一个解决方案还是所有解决方案?如果您只想找到一个解决方案,这可以很轻松地完成,根据维基百科的说法。
对于在n×n棋盘上放置n个皇后的问题,存在明确的解决方案,不需要进行任何组合搜索。