n個の「ディスク」と3本のスティック( A 、 B 、 C )の動きの数を知るために、haskellでコードを書く方法を知りたい
基本ケース ( N=1): 動き A --> C なので 1 動き
帰納的な場合 ( N = M+1 ) : M 個のディスク "A" ---> "C" を移動し、1 つのディスク "A" ---> "B" を移動し、最後に "C" から M 個のディスクを移動します。 「B」に。deコードは次のようになると思いました:
numMoveHanoi 0 = 0
numMoveHanoi 1 = 1
numMoveHanoi n = m+1 + numMoveHanoi m
where m = n-1
残念ながら、これは numMoveHanoi 2 の場合にしか機能しません。それ以外の場合、結果は間違っています。再帰定義のどこが間違っているのかわかりません。
みんな、ありがとう。