
No.3ベストアンサー
- 回答日時:
再帰関数を理解するコツは「深く考えないこと」だと思ってます。
ハノイの塔のプログラムって
# n枚の円盤を ルールに従い a→bに移動する。cは一次保管先として使える
1:def hanoi(n,a,b,c)::
2: hanoi(n -1 , a,c,b )
3: n番の板を aからbへ
4: hanoi(n -1 , c,b,a )
だいたいこんなのが多いと思います。
これを細かく追い掛けて理解しようとすると「 2:で呼び出されて1:に戻って、でも nはn-1になってるしbとcは入れかわってるし、そこから2:でまた1:へもどって今度はnはn-1から-1だから... で、戻ったら...どこ?」みたいな感じで混乱するでしょう。
混乱の原因は、再帰先まで一緒に考えようとすることです。
2:,4: の hanoi を(実際にそうなるかどうかは一旦考えないで) 仕様通りに動作する完成した関数だと考えます。
そうすると、上記のプログラムは
・n枚の円盤を a→bに移動する。cは一次保管先として使える
は
1. (一番大きなnの円盤の上にあって邪魔な) n -1枚の円盤を ルールに従い aからcに移動する。bは一次保管先として使える
2. 一番大きな nの円盤を aからbへ移動する
3. 退避しておいた n -1枚の円盤を ルールに従い 退避先の cからbに移動する。aは一次保管先として使える
ということだ、となります、
他の再帰関数でも、呼び出した先まで追い掛けるのではなく、その関数の機能にだけ注目することが理解のコツです。
No.2
- 回答日時:
とりあえず、実際にやってみれば良いと思う。
1円硬貨、50円硬貨、5円硬貨、100円硬貨、10円硬貨、500円硬貨
をそれぞれ1枚ずつ用意して積み上げたらアルゴリズムに従って移し替えてみよう。
これをやり終える頃には、そのアルゴリズムについての理解が深まっているはずです。
がんばれ。
(6枚の硬貨を使うので、べらぼうな時間がかかりますが世界が終わる事はありません。大丈夫)
それで理解できないなら、マジで救いようがないくらい頭が悪いという事になります。
普通の人なら「疲れた。けど理解できた」と、なります。
・・・
(´・ω・`) ゴメンね。質問者さんのことを知らないので、こんな感じで試したうえで判断するしかないんだ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
台湾や韓国の半導体の技術は、もとは日本の技術者がバブル崩壊で窓ぎわに追いやられたときに、教えた技術な
システム科学
-
素数の無限この証明って
システム科学
-
数学的帰納法の意味・意義について
数学
-
-
4
世界初の爆道計算用に作られたコンピュータ性能が低くく計算精度も低いのになぜ弾道計算に使われましたか?
計算機科学
-
5
小学1年生とか2年生に、「1+1ってなんで2になるの?」って聞かれたらどう答えます? 意外と難しいよ
数学
-
6
「0⁰再び」について
数学
-
7
合成関数 f(f(x))=g(x)とおくと、f(f(f(f(x))))=g(g(x))であることが
数学
-
8
数学から見たメビウスの輪
数学
-
9
日本語や英語・中国語では「赤い花」と表記しますが、古代はフランス語や・ラテン語・手話のように「花赤い
その他(言語学・言語)
-
10
おりの中にオオカミ4頭とヒツジ4頭を入れるとき、オオカミの数がヒツジの数より多くなると、ヒツジが食べ
数学
-
11
【防弾チョッキ】防弾チョッキは硬い鉄板より柔らかいアルミニウムのジェラルミン素材の防弾チ
物理学
-
12
Aの車とBの車は同じ500万円で売値が付いた場合で、走行距離はAが1000キロ、Bが2000キロです
数学
-
13
RSA暗号における公開鍵と秘密鍵の意味
数学
-
14
(A-100)÷A=20 A=? Aの求め方と答えを教えてください お願い助けてください
数学
-
15
絶対値の中が0以上ならそのまま外すと教えられたのですが、この解答では0は-をつけて外しています。なぜ
数学
-
16
1番簡単な方程式が1次方程式で1番簡単な関数が定数関数ですか?
数学
-
17
123を使って出来る最大の数は?
数学
-
18
まぐろのぶつ切りが重さを計ったら1720gでした。1パック398円にするには何グラム入れれば良いでし
計算機科学
-
19
ピタゴラスの定理
数学
-
20
ピタゴラスの定理(2)
数学
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
マージソートの比較回数の計算...
-
C# 再帰よるスタックオーバー...
-
gooという検索エンジンの後にGo...
-
最大公約数を求めたい!
-
ハッシュアルゴリズム
-
Visual studio2019 C#で生まれ...
-
シードを考慮したトーナメント...
-
パスワードつきZIPの暗号化アル...
-
☆★大学院入試のアルゴリズムに...
-
トップダウン解析とボトムアッ...
-
アルゴリズム(2分探索木)の問題...
-
プログラミングをしたいのです...
-
アルゴリズムとはこういう事で...
-
ライントレース アルゴリズム
-
一般的な解法を用いないで魔法...
-
ファイルの開き方
-
あるプログラムのコマンドライ...
-
VBAで仕様書は書きますか?
-
65536は2の何乗なのでしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
アルゴリズムとプロトコールの違い
-
期間重複チェックがわかりません
-
グループを均等に分けるには?...
-
BCDについて
-
シミュレーテッドアニーリング...
-
[ EXCEL VBA ] 図形を読み込む...
-
関数がどうしても分かりません
-
アルゴリズム フェルナンデス...
-
アルゴリズムについて(ちょい...
-
basicプログラムです。
-
乗換案内の作り方が知りたいです。
-
フローチャート等を説明したHP
-
動画で間違ったこと言っている
-
パスワードつきZIPの暗号化アル...
-
暗号化アルゴリズム
-
5人のテストの点数を入力すると...
-
ハノイの塔のさいきアルゴリズ...
-
ベイチ・カルノー図以外のとき方。
-
gooという検索エンジンの後にGo...
おすすめ情報