问题标签 [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 投票
1 回答
468 浏览

c - 8皇后之谜:使用随机数导致无限循环

执行此代码时,我的终端大部分时间都挂起,但每隔一段时间我就会得到我想要打印出来的解决方案。我知道这不是解决皇后谜题的最佳方法,所以请不要对此发表评论。感谢任何花时间提供帮助的人。

0 投票
1 回答
525 浏览

c# - 我如何避免 BackTrack 算法(n-queens)中的函数堆栈内存使用

我开始在 C# 上进行一些编码,并尝试了 n-queen 的问题,并稍作改动(queen 也有骑士权力)。在限制之后,由于一次又一次地调用该函数,它开始显示 stackoverflow 问题。

谁能帮我理解我面临的问题。下面是 n-queens 问题的代码。

  1. 这里queenPosition(由函数返回)是具有放置女王的列号的数组。就像queenPosition 4-queen 将是 (2->0->3->1)。4x4 棋盘中的位置。

  2. CheckValid函数验证位置是否合适。

  3. 有一些我不知道的概念,内存被浪费了。

0 投票
3 回答
618 浏览

algorithm - NQueen真的是在倒退吗?

NQueen 问题回溯的一个著名例子。从源代码阅读后,我尝试了以下代码片段。

我得到的输出为:

但是,当我评论回溯的语句时,我会毫无问题地得到相同的输出。

究竟是什么让 NQueen 成为回溯问题?

这不是一个简单的递归方法吗?

0 投票
1 回答
182 浏览

drools - Drools 规划器:将 SimpleScore 更改为 HardAndSoftScore

我正在玩弄流口水计划器,因为最终我需要制定一个排班解决方案。我从Drools Planner 用户指南开始,我成功地在 Eclipse 中运行了示例。

为了理解 simple 和 HardAndSoft 分数类型之间的区别,我尝试修改 NQueens 示例,将分数从 Simple 更改为 HardAndSoft。

我做了如下:

  1. 在我设置的 nqueensSolverConfig.xml 中<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>

  2. 在 NQueens.java 中:

    • 我设置public class NQueens extends AbstractPersistable implements Solution<HardAndSoftScore> {...}

    • 我将 SimpleScore 相关的属性和方法更改为对应的 HardAndSoftScore 成员:

    私有 HardAndSoftScore hsScore;

    public HardAndSoftScore getScore() { return hsScore; }

    public void setScore(HardAndSoftScore score) { this.hsScore = score; }

但是当我运行解决方案时,我收到以下消息:

怎么了?

0 投票
2 回答
8056 浏览

algorithm - N-Queens 谜题的最佳复杂度是多少?

N皇后谜题理论上可以在多项式时间内解决吗?如果是这样,它的最佳复杂性是什么?我找到了很多算法,但我还没有找到时间复杂度到底是多少。是否有任何文件或文件给出了其复杂性的确切数字?

(PS 显式解法很有意思,但我忘了说,我希望找到所有的解法。)

0 投票
2 回答
1340 浏览

algorithm - N-Queens 算法的变体

我不知道这个问题有没有研究过,只是在尝试一般的N-Queens问题时想到的。给定一个N*N棋盘,所需的最小皇后数是多少,当策略性地放置时,至少有一个皇后会攻击所有单元格。

我用笔和纸试了N= 3,4,5,我得到了2,3,4。答案总是如此N-1吗?有证据吗?其次,如果是这样,如何打印出该配置(如果可能有超过 1 个配置,则将它们全部打印出来)?

0 投票
1 回答
8242 浏览

java - 八皇后启发式

我正在开发一种启发式方法,将 8 个皇后放在 8x8 棋盘上。每个方格都有自己的淘汰数(表示如果在该方格中放置皇后,则“消除”空棋盘的多少个方格。)并且每个皇后应放置在淘汰数最低的方格中。

我的问题是我不知道该怎么做才能不断减少他们适当方格的特定消除数量,所以如果你能帮助我,我将不胜感激。另一个问题,我觉得我的代码很复杂,所以有什么注释可以使它更简单吗?

这是我的代码

}

我的主要方法是在单独的课程中。

0 投票
1 回答
53 浏览

random - 随机函数有奇怪的行为,而常量值在 Python 2.7 中工作

我有一个使用这种重要方法的单线程 Python 模块(用于解决 n-Queen 问题):

如果我给它一个像 9 或其他任何值的常量值,该方法将正常工作,但如果我想使用随机函数选择从可用(数字列表)中选择一个值,则碰撞()方法无法正常工作通过错过一些。

如果有帮助,这里是碰撞方法:

基本上,它检查棋子“b”是否可以被皇后“a”攻击

0 投票
1 回答
1309 浏览

php - 在 php 中优化 n-queens 解决方案

我有一个基本的蛮力解决方案,可以找到用 php 编写的 n-queens 问题的一种解决方案。 这是一个演示。在 n=16 时,服务器开始抛出内存不足错误。

gitHub 上的源代码

您会建议在代码或算法中进行哪些改进以使页面能够显示更多皇后的解决方案?我正在尝试学习如何编写更好的代码,因此假设对进程分配的内存进行猴子操作超出了范围。

0 投票
1 回答
765 浏览

java - 将 C 指针转换为 Java

我的任务是创建一个非常快速的 nqueens 程序。到目前为止,Bruteforce 算法和 Backtrack 都在工作,但我发现了一个似乎更快的 C 程序。现在我尝试将它从 C 转换为 Java,但是我无法转换指针,因为我不了解指针发生了什么。这些是必须转换的行:

编辑:我已将转换更新为我所理解的:

一个解决方案会很好,但如果你能解释一下这里发生了什么,我会尝试自己找到它。指针是我从未真正学习过 c 和 c++ 的原因。

问候,丹尼斯·菲舍尔