问题标签 [towers-of-hanoi]

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

algorithm - 解析递归河内塔算法

很抱歉问这个问题,但我没有发现任何其他现有线程有用。我不得不说我很难理解复杂的话题,也许我只是愚蠢。我对此深感抱歉。无论如何,我试图解析以下内容,但有些不对劲。

我草草写了一些笔记来帮助自己解析代码:

第二个递归调用过早停止,我想知道我忽略了什么。

我发现迭代代码更容易理解,我写了一个基于迭代算法的递归算法。

0 投票
1 回答
1661 浏览

computer-science - 超过 3 个钉子的河内塔

我在这里了解河内塔的标准递归解决方案。

但是,如果我有可变数量的钉和磁盘怎么办?此处提供的解决方案是否始终是从一座塔到另一座塔的最短(又名最快)路径?如果是,为什么?

0 投票
2 回答
1349 浏览

prolog - Visual Prolog 中的河内塔

我对视觉序言相当陌生,想知道如何集成在此链接上找到的代码。

当我在 Visual Prolog 中创建控制台项目时,main.pro 中的代码是:

所以,我的问题是在这个链接上在哪里插入河内塔的代码?

为方便起见,代码如下:

提前感谢您的帮助。

0 投票
1 回答
2593 浏览

ruby - 河内之塔:Ruby 中的递归解释

注意:我了解递归解决方案;但我看不到代码是如何实现的,因为我无法按照代码执行的逐步进行。

我很难理解河内塔的递归循环。我已经评论并尝试了各种策略来查看程序是如何运行的,但我似乎无法掌握循环是如何运行的以及环是如何被引导的。

这是输出:

我查看了各种解释,但是,我没有看到解释循环是如何执行的。例如,我不明白为什么在环是偶数的情况下,第一步将环 1 从 a 放置到 b,而对于所有奇数环,它是从 a 到 c,如上所示。

我理解解决方案背后的逻辑,为了在使用辅助挂钩时将 n 个环移动到目的地,需要您首先将 n-1 个环移动到辅助挂钩,然后将第 n 个环移动到目的地并重复第一个程序,再次。但是,我不确定放置方向是如何变化的,例如,当上面对 move 方法的调用似乎没有提到 c 到 b 时,我看不到块是如何从 c 到 b 的。

提前感谢您的时间和帮助。

此外,如果您对帮助跟踪 Ruby 中的代码执行过程有任何建议,请告诉我。我很想听听您对如何解决不确定事情如何执行的实例的一些见解。

渴望听到你的答案:)

0 投票
1 回答
18800 浏览

c++ - 河内塔 C++(使用递归)

我编写了以下代码作为练习。
打印目标堆栈时输出不正确。
谁能指出我哪里出错了?

这是我得到的输出:


编辑后,代码如下所示:

第一个错误是:

第二个是:

非常感谢大家的帮助!


对堆栈类所做的更改:

0 投票
2 回答
1271 浏览

c - 了解河内塔的递归解决方案

有人可以解释一下这个程序吗?我特别想知道参数是如何传递给函数的tower,以及递归是如何工作的。

这是代码:

0 投票
2 回答
93 浏览

algorithm - 学习算法时的方法

我正在学习算法并来到这座河内塔。我知道如何实际做到这一点。但我无法编码。我还没有阅读给定的代码。我自己先试试。我的方法应该是什么 - 继续尝试或阅读给定的代码或其他内容?

所有算法都应该遵循这种方法吗?

0 投票
2 回答
201 浏览

math - Prolog - 写连续的数字_

我的任务是:让这个 hanoi 程序在写每个句子之前写一个连续的数字。

河内计划是这样的:

我希望输出看起来像这样:

0 投票
1 回答
1603 浏览

list - OCaml 中的河内塔

我是一个初学者 OCaml 程序员,试图在 OCaml 中创建一个函数来解决河内塔问题,该解决方案由一个移动列表表示,其中“移动”存储在表单的元组中(startPeg,endPeg)。

这是我到目前为止所拥有的:

我收到错误消息:

文件“induction.ml”,第 8 行,字符 8-27:错误:此表达式的类型为 'a 列表,但表达式应为 'a 类型。类型变量 'a 出现在 'a 列表中

并且不知道如何解决它。谁能帮我纠正我的错误?谢谢

0 投票
2 回答
2311 浏览

scala - Tail-Recursion for Towers of Hanoi in Scala

I'm new to programming in Scala. My aim is to implement a tail-recursive program for the Towers of Hanoi problem. I believe it can be achieved by recursion like this:

Can it implemented using tail-recursion as well?