我想知道如何在haskell中编写代码来了解 n个“圆盘”和3根棍子(A、B、C)的运动次数
基本情况(N=1):运动 A --> C 所以 1 运动
归纳案例(N = M+1):我移动 M 个圆盘“A”--->“C”,我移动 1 个圆盘“A”--->“B”,最后我从“C”移动 M 个圆盘到“B”。我认为解码代码可能是这样的:
numMoveHanoi 0 = 0
numMoveHanoi 1 = 1
numMoveHanoi n = m+1 + numMoveHanoi m
where m = n-1
不幸的是,这只适用于 numMoveHanoi 2 的情况。其他情况,结果是错误的。我不知道我的递归定义哪里错了。
感谢大家。