gpt4 book ai didi

c - 汉诺塔迭代 n > 3 钉

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:19 26 4
gpt4 key购买 nike

3 个钉子(或杆,或任何你调用它们的东西)的迭代算法是重复以下两点:
1. 将最小的磁盘向右/左移动(如果是奇数/偶数)
2. 在不触及最小圆盘的情况下向左移动一次

我的问题是 - 对于 n > 3 个钉子是否有类似的算法?

我在互联网上找不到这个(至少是迭代的)。我自己什么也想不通。上面的算法根本不起作用 - 它无限地移动磁盘。

我知道我之前发布过 2 种相关问题,你不太欢迎它们,所以在你投反对票之前 - 请在评论中写信给我,让我自己研究更多信息,然后我将删除这个话题。

最佳答案

具有 n > 1 个圆盘的 3-peg Hanoi 问题的一般递归算法(n==1 的情况很简单)是:

  1. 将 n-1 个圆盘从源桩移动到第三个桩(既不是源桩也不是目标桩)
  2. 将最大的圆盘移到目标 Hook 上。
  3. 将 n-1 个圆盘从第三个柱子移到目标柱子上。

超过 3 个钉子,算法相同。只需将“第三个 Hook ”替换为“任何未使用的 Hook ”即可。

请注意,该算法不使用“向左移动”或“向右移动”之类的术语。

正如@nhahtdh 在评论中指出的那样,任何递归算法都可以通过标准方法转换为迭代算法。

关于c - 汉诺塔迭代 n > 3 钉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com