问题标签 [knights-tour]

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 回答
205 浏览

java - 骑士之旅需要回溯

为什么我们需要回溯骑士的旅行问题?我们可以只使用递归吗?我试过这样做,但它给出了错误的答案,我无法弄清楚代码或逻辑哪里出错了。

0 投票
3 回答
3756 浏览

algorithm - 5 x 5 棋盘上的骑士之旅 从任何广场开始?

我只想在这里检查我的逻辑...

我编写了解决 Knight's Tour 的代码,它适用于在任何方格开始 Knight 的 8x8 板。

但是......在一个 5x5 板上,我从正方形 (0, 1) 开始时没有显示出可能的解决方案。

我尝试 5x5 在第 0 行第 1 列开始骑士:

  1. 华恩斯多夫的道路
  2. 添加了 Roth(基于欧几里得距离中心的平局断路器)。

由于这些没有产生解决方案,我编写的代码只是带有回溯的基本递归,以测试每条可能的路径——在 1、0 上启动 5x5 时也没有找到解决方案。

我到处寻找 5x5 板的详尽解决方案列表,但没有找到。

是不是从 0、1 格开始就没有 5x5 的解决方案?

谢谢!

0 投票
2 回答
120 浏览

functional-programming - 如何在 F# 递归算法中正确返回生成的序列

作为一个辅导练习,我在 CS 中实现了 Knights Tour 算法并且工作正常,在尝试将其移植到 F# 之后,我无法超越我聚合 Knight 路径的结果序列以返回给调用者的部分。

代码是这样的:

我收到以下错误:

我可能会误解这是如何工作的,但我希望 nextMoves 的结果是 seq<_>。有没有更好的方法来做到这一点?我错过了什么吗?有什么推荐的款式吗?

提前致谢!

0 投票
1 回答
6533 浏览

c++ - 骑士游览 C++ 中的所有答案

对于骑士之旅问题,我想出了这个答案;但是,它只打印一个答案。我不知道如何打印所有答案。我知道我应该将 find tour 的输出更改为 void 以避免完成,但我不知道如何。任何人都可以修改它吗?

0 投票
1 回答
257 浏览

c# - Knights Tour recursive C# Im getting something wrong in my way of doing the stuff

So this is how I'd do the stuff. The problem is, I am missing some key functionality, because on low given stepcount it backtracks to the start, on high stepcount, it causes StackOverFlow.

Here are some other functions to let you understand what I want to do: Calculating distance:

Finding the path:

0 投票
1 回答
649 浏览

c++ - 平行骑士之旅算法

目前我有一个正在运行的骑士之旅算法。

我使用以下组合:

  • 回溯
  • 华恩斯多夫规则

该算法执行以下操作:

它工作正常。这不是最好的解决方案。

我正在尝试使用并行化来提高速度,特别是使用 C++ 线程 ( #include<thread>)。

这是什么算法?到目前为止,我尝试过的唯一方法有错误共享问题、共享内存问题或根本无法运行。

0 投票
1 回答
59 浏览

algorithm - 寻找离棋盘中心最远的移动 - python 2

我一直在研究骑士的巡回模拟,对于如何将 Arnd Roth 更改应用于我的 python 程序,我感到很困惑。这里的程序片段是计算的大部分,并通过棋盘,移动到可能移动次数最少的位置。我想改变的是,如果有多个位置的移动次数最少(即它们都有 2 个可能的移动),我想通过测量它们的位置和中心之间的距离并选择一个来打破它们之间的关系离它最远。我该怎么做呢?


0 投票
1 回答
529 浏览

python - 使用回溯在 8x8 棋盘上实现 Knight's Tour

这是我在 python 中的代码,调用knightsTour(0,0,1,sol,xMove,yMove)应该返回True,但我得到False. 我无法找到这个错误。

0 投票
1 回答
204 浏览

java - 具有邻接列表的骑士巡回算法

我正在尝试用 Java 解决骑士的旅行问题。我的目标是计算一匹马在任何维度的棋盘上所有可能的旅行。我尝试使用的是邻接列表数据结构。现在的问题是,我知道哪些方格与一个方格相邻,但我不知道相邻方格的方向。我该如何解决这个问题?

0 投票
2 回答
259 浏览

java - 使用 DFS 在 Java 中计算 5x5 字段上可能的骑士移动

我正在尝试计算 5x5 场地上所有可能的骑士移动。

为此,我尝试使用 DFS(深度优先搜索)和 Graph 类。

该字段看起来像这样(为每个字段使用一个 id):

可能的步骤是这样定义的(使用图的边缘,G):

这是我试图找到可能的目的地:

例如,如果我尝试通过 调用此递归函数calculatePath(20),它应该返回 11 和 17,因为这些是骑士可以从该字段跳转到的唯一可能的目的地(id 为 20)。未标记的方格是已经到达的方格。

变量tours将是可能的旅行数量(在 的情况下为 2 calculatePath(20))。