问题标签 [n-queens]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
15192 浏览

algorithm - 解决 N 皇后问题……我们能走多远?

N皇后问题:

这个问题指出,给定一个大小为 N 乘 N 的棋盘,找出不同的排列方式,其中 N 个皇后可以放在棋盘上而没有任何人互相威胁。

我的问题是:
程序可以在合理的时间内计算出答案的 N 的最大值是多少?或者到目前为止我们见过的最大的 N 是多少?

这是我在 CLPFD(Prolog) 中的程序:

这个程序工作得很好,但是它所花费的时间随着 N 的增加而不断增加。这是一个示例执行:

这意味着您将 4 个皇后放置在第 1 列的第 2 行、第 2 列的第 4 行、第 1 行在 3 中和第 3 行在 4 中。(在 4×4 棋盘中)

现在让我们看看这个程序是如何执行的(计算第一个排列所用的时间):
N=4,5.....10 在一秒钟内计算
N=11-30 需要 -1-3 秒
N=40 ..50 仍然在一分钟内计算
在 N=60 它超出了全局堆栈(搜索空间巨大)。

这是过去的作业问题。(最初的问题只是编码 N-Queens)

我也有兴趣看到其他语言的替代实现(比我的实现更好)或者如果我的算法/程序有改进的空间

0 投票
4 回答
6800 浏览

scheme - Scheme中如何解决N-Queens?

我被困在How to Design Programs 的扩展练习 28.2 上。我使用真值或假值的向量来表示板,而不是使用列表。这就是我所拥有的不起作用:

0 投票
14 回答
23191 浏览

c# - 8皇后算法示例?

有人知道8-queens的好/简洁的算法示例吗?我进行了网络搜索,但没有找到任何好的示例。

0 投票
2 回答
6092 浏览

matlab - Matlab N皇后问题

主文件

解决方案

返回.m

我正在尝试找到可以将 n-queen 放置在 n×n 板上的最大方式,以使这些皇后不会互相攻击。我无法弄清楚上述matlab代码的问题,我怀疑这是我的逻辑的问题,因为我已经在java中测试了这个逻辑并且它似乎在那里工作得很好。代码可以编译,但问题是它产生的结果是错误的。

有效的Java代码:

0 投票
1 回答
1292 浏览

c++ - 查询 N-Queen 求解?

我解决了 N-Queen 问题,条件是每列只能有一个皇后。所以我把一个皇后放在第一列的一个方格中,然后移动到下一列,把一个皇后放在船上没有被皇后攻击的方格中。我可以使用这种方法找到所有解决方案,但是在 n=13 之后开始需要很长时间。此外,我发现该问题的大多数解决方案都可以通过旋转和反射极少数不同的解决方案来找到。例如,8 个皇后问题有 92 个总解决方案,其中只有 12 个是不同的。(http://en.wikipedia.org/wiki/Eight_queens_puzzle)

所以我的问题是我如何检查电路板的这些状态,并且只将这些状态推送到堆栈中,从而给出不同的解决方案?

这就是我现在正在做的事情。

0 投票
2 回答
8808 浏览

java - 用二维数组解决八皇后问题:IndexOutOfBounds 错误

我的一项家庭作业是使用二维数组表示棋盘来解决八皇后问题。我在我的“isUnderAttack”方法中不断得到一个索引越界错误:8:

在我的“placeQueen”方法中:

我可能哪里出错了?我会在这篇文章中添加更多标签,但我是新用户,无法创建“新标签”。对不起!

这是我创建的:

0 投票
3 回答
513 浏览

java - Java中经典n-Queens的实现问题

这是一个家庭作业问题。我正在为n-QueensJava 中的经典问题编写解决方案。我的程序看起来像这样,但它返回所有合法皇后位置的集合,而不是打印出来。我将皇后的位置表示为int[]Set<int[]>使用HashSet<int[]>它的实现返回。(Set在这里是合适的,因为展示位置的顺序并不重要)。

问题是 Java 数组不会覆盖hashCode,并且具有相同值的不同数组实例具有不同的哈希码。

我可以编写一个包装类QueensPlacements,它包含一个数组并hashCodeArrays.deepHashCode和 return覆盖Set<QueensPlacement>。然而,它似乎冗长而不优雅。有人可以提出更好的解决方案吗?

0 投票
6 回答
12702 浏览

python - 解决 n-queen 谜题

我刚刚解决了python中的nqueen问题。该解决方案输出在 nXn 棋盘上放置 n 个皇后的解决方案总数,但在 n=15 的情况下尝试它需要一个多小时才能得到答案。任何人都可以看看代码并给我加速这个程序的提示......一个新手python程序员。

0 投票
3 回答
6581 浏览

prolog - 序言编程

我使用爬山和光束搜索算法在 Prolog 中为 nqueens 拼图制作了两个程序。

不幸的是,我没有检查程序是否正确的经验,我陷入了死胡同。

如果有人可以帮助我,我将不胜感激。不幸的是,爬山的程序不正确。:( 束搜索中的程序是:

0 投票
4 回答
5980 浏览

java - 8皇后问题

我该如何解决 8/4 皇后问题?我应该使用 DFS/BFS,我认为 DF 会更好。任何人都可以给出一些伪代码/指导方针吗?