ハノイの塔

我が彼氏Rは今現在ハノイに滞在しているのであるが、そういえばプログラミングの学習で「ハノイの塔」という課題があったなぁと思い出す。

再帰(recursive)アルゴリズムを習った後に応用課題として必ず出てくる問題「ハノイの塔」。まぁ問題を見れば子ども向け課題でよくあるやつなんだけれども、これをプログラムで解決してみましょうって課題(こうすればいいっていうのをアルゴリズムとして言語化して書けますか?)。再帰(recurisive)っていうのは非常に重要な考え方でプログラマとしては絶対に押さえておかなければならない初歩。ただし、再帰はわかりやすい反面、ヘタするとものすごく時間のかかるアルゴリズムで、うっかりすると永遠に返ってこなくなったりすることもあるのだけれども(無限ループに陥る)、プログラマとしてやっていくにはこれをおさえておかないと致命的。

初級から一歩上を目指すプログラマの場合は、これを理解したうえで、「ハノイの塔」を再帰を使わないアルゴリズムで解くのが次のステップ。

wikipediaの「ハノイの塔」の項

こちらの記事もぜひ!!