続・ハノイの塔。
先日、「なにやっているのかさっぱりわからん」などと書いた、くだらん愚痴に、一歩さまが解説してくださる。 ありがとうございます〜。
おかげで、だいぶわかってきました〜。ありがとうございます〜。やっとわかりました。
なぜ、分からんわからんと口走っていたかと言うと、その、アルゴリズム自体は非常にシンプルで動くし、美しいアルゴリズムで、且つたくさんの仕事をシンプルな命令で行う見事なプログラムだと思うのですが……そして、先生もやり方を書いた紙はくださったのですが、具体的に流れ図があったわけじゃないんです。で、できたんですが、それを今度は理解しようとして頭の中でトレースすると……
「 えっと、ここが10で、次には9が、8が7が6が5が(ここら辺で脳内メモリーが一杯)4が3が2が1が渡されて、市まで来ると戻るから、えっと
1が、えっとかえされるから、ここでここまで来るときに、あれ?どれがどう入れ替わっているんだ?、このときにも処理がだされるわけで、あれ?いまは、えっと、10が一回目で処理していて、次が二で、さんでよんで……あれれれれ????」
そう、自分は、こういうことがかな〜り苦手なのです。というかそもそも技術がない。そして、なぜこの計算をすることによってこういう解がでるのか、ってことがど〜しても(大汗
しかし、教えていただいて、分かりました。なるほど、確かに美しいアルゴリズムだ。たくさんある動作を、シンプルな形にまで集約したものなんだ。なんか、この世の法則が詰まっているかんじ。
そして!教えていただいたプログラムをちょっと動かしてみる。
ハノイの塔。枚数を入力してください:3
処理1回目1の円盤をAからCへ移動
処理2回目2の円盤をAからBへ移動
処理3回目1の円盤をCからBへ移動
処理4回目3の円盤をAからCへ移動
処理5回目1の円盤をBからAへ移動
処理6回目2の円盤をBからCへ移動
処理7回目1の円盤をAからCへ移動
↑Rubyでやってみました!うごいた〜っ(って当たり前。コピーさせていただいただけ(汗))
なんというか……人生日々精進!というかんじであります。本当にありがとうございました。
なんだかんだいってカレンダーを表示する奴はまだ完成して無いし(汗