- ベストアンサー
ハノイの塔が分かりません。親切な方お願いします!
宿題で出たハノイの塔が1時間考えても分かりません。 この紙にそのまま写して書けるようにお教えください!!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- ハノイ塔の非再帰について
VBでハノイの塔(非再帰)で作りたいのですが、 考え方がまったくわかりません。 ハノイの塔(非再帰)をVBで作った事のある方、 良ければ基本的な考え方を教えてください。
- 締切済み
- Visual Basic
- ハノイの塔の解き方
ハノイの塔について質問なのですが、 3本棒の 5枚の円盤をときたいのですが、 最短距離で動かす法則を知りたいのですがさっぱり分かりません。 他でも調べたのですが数式がでてきて、よくわからなかったです。すみません、どなたか教えてください!
- ベストアンサー
- その他(趣味・娯楽・エンターテイメント)
- ハノイの塔
★自分が理解している事 「(n-1)ハノイが解けると仮定するとnハノイも解けること」 は理解できます。 そして数学的帰納法によりすべての自然数についてハノイは「解ける」 ここまではわかります。 ★わからないのは、その「解き方」です。 「解ける」ことはわかるのですが「解き方」がわからないのです。 何故このプログラムで正解が表示されるのかが理解できないのです。 確かに、紙と鉛筆でプログラムの流れを追っていくと解けています。 しかし、何でこのプログラムで解けるのかがわからないのです。 棒xは出発点 棒yは目的地 棒zは作業棒 です。 (n-1)ハノイをひとかたまりと考え、作業棒Zに移す。 nハノイを目的地Yに移す。 (n-1)ハノイをひとかたまりと考え、目的地Yに移す。 そんな説明で確かに納得した気になりはします。 しかしこのプログラムでは(n-2)以下の場合についてはいっさい語っていません。 何かだまされてる気がします。 このプログラムでは(n-1)について語っていますが (n-2)以下については全く語っていません。 数学的帰納法により「解ける」ことは証明済みですが、 「その解き方」がこのプログラムでよいという「証明」はありますでしょうか? 理解のコツはありますでしょうか? よろしくお願いいたします。 #include<stdio.h> #include<stdlib.h> void hanoi(int n, char x, char y, char z) { if(n==0) {/* 何もしない */} else { hanoi(n-1,x,z,y); printf("%c->%c,",x,y); hanoi(n-1,z,y,x); } } int main(void) { int num; scanf("%d",&num); hanoi(num,'A','B','C'); return 0; }
- ベストアンサー
- C・C++・C#
- ハノイの塔っぽいゲームだったと思うのですがルールが思い出せません
質問お願いします。 たしかハノイの塔のようなゲームだったと思うのですが 7枚の円盤を他の器を使いながら移し変えて、もとの入れ物に逆さまの順番にする。 これが終わったら世界は崩壊するみたいな設定だと思ったのですが、これで合っているでしょうか? 実際計算すると何万年もかかるというオチだったのですが、詳しい設定や名前、ルールなどがうろ覚えです。 円盤はたしか7枚だったと思うのですが、wikipediaのハノイの塔のバリエーションでは64枚も使っているので別のゲームだったかなと混乱しています。 覚えてる方がいましたらこのゲームについて詳しくお願いします。
- 締切済み
- 数学・算数
- ハノイの塔
次のc言語で書かれたハノイの塔のプログラムをZ80で動作させたいのですが、アセンブルするとどうなるのでしょうか??教えてください。 void move(char n,char a,char b){ if(n>1)move(n-1,a,6-a-b); if(n>1)move(n-1,6-a-b,b); } int main(){ char n=5; move(n,1,2); }
- ベストアンサー
- その他(プログラミング・開発)
- ハノイの塔について課題が出たのですが、言ってる意味自体解りません(Tへ
ハノイの塔について課題が出たのですが、言ってる意味自体解りません(TへT) 課題内容は以下のものなんですがぁ;;助けてくださぁ~い↓↓ (1)ハノイの塔の時間計算量が 2n - 1 になるのはなぜか. また,1 枚の円盤を移すのに 2 秒かかるとする. ハノイの塔で,30 枚の円盤を移すのに約何年かかるか求めよ. ただし,1 年を 365 日とする. (2)8 Queen で,しらみつぶし法によってあらゆる置き方を確認するのに何回かかるか求めよ. また,8 Queen で,一行には一つの Queen しか置けないことを考慮した場合のあらゆる置き方を確認するのに何回かかるか求めよ. いずれも,Queen を一個ずつ確認するのではなく,8 個の Queen の置き方一通りについて一回の確認とみなす. 求めた過程も説明すること.
- 締切済み
- 数学・算数
- brother MFC-870CDFのスキャンをする際に、「接続を確認してください」とのエラーメッセージが表示されており、新PCへのソフトウェアのインストールも行っていない状況です。
- 使用環境はWindows10で、有線LANで接続されています。
- 関連するソフトやアプリは特にありません。電話回線はひかり回線です。
お礼
リンクを見たり、アドバイス通りに実際にやってみようと思い、紙を切ってやってみました! なんとかできました。 ハノイの塔は難しいです。 数学ではなく、技術の宿題で出たのですが、みんな苦しんでました。どうして技術で出たのかは割愛しますが・・・。 ありがとうございます!