24得票9回答
解决 N 皇后问题...我们能走多远?

N皇后问题: 该问题描述了一个尺寸为N×N的国际象棋棋盘,找出不同的排列方式,使得N个皇后被放置在棋盘上时,彼此之间没有任何威胁。 我的问题是: 程序能够在合理时间内计算出答案的最大值N是多少?或者我们目前见过的最大N值是多少? 这是我使用CLPFD(Prolog)编写的程序: gen...

19得票7回答
N皇后问题使用回溯法的时间复杂度是多少?

#include<stdio.h> #include<math.h> void printboard(int n); void fourQueen(int k,int n); int place(int k,int i); int x[100]; void NQue...

12得票2回答
使用动态规划解决8皇后问题

我对使用动态规划实现八皇后问题的想法感到相当困惑。似乎在某一方面,DP不可能实现这一点,“如果问题被分解为一系列子问题,并找到了每个子问题的最优解,则通过这些子问题的解决方案实现结果的问题可以得到解决。没有这种结构的问题不能用动态规划来解决”(参考文献)。考虑到这一点,7x7棋盘的最优解也可能...

12得票3回答
如何使用选择单子(Select monad)来解决 N 皇后问题?

我正在试图理解Select单子的工作原理。显然,它是Cont的近亲,可用于回溯搜索。 我有一个基于列表的解决n皇后问题的方案:-- All the ways of extracting an element from a list. oneOf :: [Int] -> [(Int,[In...

11得票2回答
N皇后问题的最佳复杂度是什么?

理论上,N皇后问题能否在多项式时间内解决?如果可以,它的最佳复杂度是什么?我找到了许多算法,但我没有找到确切的时间复杂度。是否有任何论文或文档提供其复杂度的确切数字? (附言:显式解非常有趣,但我忘记说了,我希望找到所有解决方案。)

11得票5回答
理解优秀程序解决皇后问题的提示

在Sterling和Shapiro的《Prolog艺术》中,第14.1节(v)的练习中:queens(N,Qs) :- length(Qs,N), place_queens(N,Qs,_,_). place_queens(0,_Qs,_Ups,_Downs). place_q...

10得票5回答
使用回溯递归解决8皇后问题

我一直在研究八皇后问题,但卡住了。我不需要代码,我希望得到指导和方向以便理解如何使用回溯递归来解决这个问题。 该程序应通过绘制皇后的位置来枚举N皇后问题的所有解决方案,就像这里所示的两个解决方案一样。 我目前的伪代码如下:void queen(int n){ for( int i ...

9得票2回答
N皇后问题对称性破解之Google OR工具

Google or-tools的样例之一是用于n皇后问题的求解器。底部指出,通过向约束求解器添加对称性破坏约束可以改善实现。 我在互联网上搜索到了关于N皇后问题对称性破缺的限制条件,但我无法想象如何将这些限制条件转换为实现它们的Python代码。 编辑:这是一个不好的问题,让我们更新....

8得票1回答
Racket代码在N皇后问题中的并行运行

我正在使用以下简单代码解决n皇后问题: #lang racket ; following returns true if queens are on diagonals: (define (check-diagonals bd) (for/or ((r1 (length bd))...

7得票2回答
如何使用replicateM解决八皇后问题?

我刚开始学习编写Haskell代码,所以如果我提出了一个愚蠢的问题,请原谅。我正在尝试通过使用[]单子来重新解决八皇后问题。下面是代码: import Control.Monad addqueen :: [Int] -> [[Int]] addqueen xs = [ x:xs | ...