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

algorithm - 关于八皇后的“没有三个皇后在一条直线上”属性的困惑

八皇后拼图的维基百科文章中解决方案部分的最后一行被声明为“解决方案 10 具有没有三个皇后在一条直线上的附加属性”

但这不就是不让任何女王成直线的使命吗?为什么它对解决方案 #10 很特殊,我可以看到所有解决方案都遵守该声明。那么我忽略了什么?

0 投票
2 回答
1587 浏览

python - 皇后区拼图广度优先

我被告知要编写一个程序,使用广度优先搜索来解决八皇后之谜。这是我到目前为止所得到的:

有什么办法可以改善这一点吗?

0 投票
1 回答
195 浏览

java - 8 皇后不使用回溯法

我正在做 8 个皇后问题的一个版本,但没有使用回溯方法。对于其中一种方法,我必须“对正方形进行评分”,基本上我需要找出如果要在盒子中放置女王,则将变得不可用的单元格数量。我的问题是我无法让我的代码返回正方形的分数。我的 for 循环有什么问题吗?

0 投票
1 回答
3077 浏览

backtracking - n-queens,检查有效的棋盘

所以我正在尝试解决 n-queens 问题。我认为我有一个有效的回溯实现,但我认为我检查板是否有效的方法已关闭(并且效率极低),但我不明白为什么。谁能明白为什么/提供更好的方法?

0 投票
1 回答
489 浏览

python - python中的n个皇后程序不起作用

我在 n 个皇后的 python 中的程序有问题(有多少种可能的方法可以将 n 个皇后放在一个 nxn 板上)。似乎我的递归有问题,但我真的很无奈。有人能弄清楚出了什么问题吗?

0 投票
1 回答
4097 浏览

python - 8 个皇后谜题 - 使用 python 递归

我正在尝试解决8-queens 谜题,也称为 n-queens 算法。

我的功能应该计算有多少种合法的方式可以在 NxN 板上放置 N 个皇后。

我几乎明白了,但必须做一些丑陋的补丁才能让它工作。你能帮我修一下吗?

关于我所做的事情的简要说明:试图找出在 NxN 表中设置 N 个皇后的合法方法,我试图在 (N-1)xN 情况下使用递归来解决(删除第一列)至于事实同一列上不允许有两个皇后,我使用 N 的列表长度。每个单元格代表一列,在每一列中,我设置皇后所在的行号。

例如,

意思是:

  • 第 0 列 – 皇后放置在第 0 行
  • 第 1 列 – 皇后放置在第 4 行
  • 第 2 列 – 皇后放置在第 7 行
  • 第 3 列 – 皇后放置在第 5 行
  • 第 4 列 – 皇后放置在第 2 行
  • 第 5 列 – 皇后放置在第 6 行
  • 第 6 列 – 皇后放置在第 1 行
  • 第 7 列 – 皇后放置在第 3 行

困扰我的事情是我不知道如何省略非法的女王放置。因此,为了使其工作,我使用了一个名为 的全局变量sum,仅当递归达到合法的皇后完全放置时才增加它。

因为N = 8我得到sum = 92.. 因此我知道它有效,但我想避免使用这个全局计数器。

你能帮我吗?

0 投票
2 回答
79 浏览

c# - 从 C# 的 main 中调用方法

我在 C++ 中练习过。它是 8-Queens 的解决方案,输出所有 92 种可能的解决方案。

C++ 代码示例:是什么让这个循环如此多次?

然后我用 C# 编写了它。在这里,但最后我有一个错误。

0 投票
1 回答
478 浏览

java - 带有java接口的prolog中的8皇后拼图,我无法执行查询

我正在解决 prolog 中的 8 个皇后问题。我是序言的初学者。我想打印解决方案列表,但我的查询每次都失败......任何人都可以帮助我???


这是我的序言代码

0 投票
1 回答
1641 浏览

conflict - 4 皇后,最小冲突

我想要一些有关min-conflicts algorithm 的帮助。

如果我们在这一点上,

  • 算法会随机选择移动其中一个C还是D因为它们都产生相同数量的冲突(C与 冲突DD与 冲突C),
  • 还是它会选择D,因为我们可以移动的最佳位置C在第 3 行,这将导致 1 个冲突,如果我们选择D并将其移动到第 3 行,将导致 0 个冲突。
0 投票
6 回答
89486 浏览

c - 使用回溯的 N Queen 的时间复杂度?

我认为它具有时间复杂度:O(n^n),因为 NQueen 函数正在递归调用,但是这个程序是否有更严格的界限?最好的情况和最坏的情况时间复杂度怎么样。我也对 O(k) 和从 NQueen() 调用的 place() 函数感到困惑。