怎么用python写汉诺塔程序

55次阅读
没有评论

共计 611 个字符,预计需要花费 2 分钟才能阅读完成。

下面是使用递归的方法来编写汉诺塔程序的 Python 代码:

def hanoi(n, source, target, auxiliary):
    if n > 0:
        # 将 n-1 个盘子从源柱子移动到辅助柱子 
        hanoi(n-1, source, auxiliary, target)
        
        # 将第 n 个盘子从源柱子移动到目标柱子 
        print(f"Move disk {n} from {source} to {target}")
        
        # 将 n-1 个盘子从辅助柱子移动到目标柱子 
        hanoi(n-1, auxiliary, target, source)


# 测试 
n = 3  # 盘子的数量 
hanoi(n, 'A', 'C', 'B')

请注意,此代码仅打印出了每一步的移动,如果你希望将移动的步骤保存在列表中以便进一步操作,你可以将 print 语句替换为一个列表的追加操作。

这段代码中的 hanoi 函数采用了四个参数: n 表示要移动的盘子数量,source 表示源柱子,target 表示目标柱子,auxiliary 表示辅助柱子。函数首先将 n-1 个盘子从源柱子移动到辅助柱子,然后将第 n 个盘子从源柱子移动到目标柱子,最后再将 n-1 个盘子从辅助柱子移动到目标柱子。这个过程通过递归调用函数来实现。

在测试部分,我们将一个包含 3 个盘子的汉诺塔问题的解传递给 hanoi 函数,并将源柱子命名为‘A’,目标柱子命名为‘C’,辅助柱子命名为‘B’。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计611字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)