並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 26 件 / 26件

新着順 人気順

ハノイの塔の検索結果1 - 26 件 / 26件

  • ハノイの塔 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ハノイの塔" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年7月) 8つの円盤のハノイの塔 ハノイの塔(ハノイのとう、英: Tower of Hanoi)は、パズルの一種。 バラモンの塔または ルーカスタワー(英: Lucas' Tower)[注 1]とも呼ばれる。 ルール[編集] 以下のルールに従ってすべての円盤を右端の杭に移動させられれば完成。 3本の杭と、中央に穴の開いた大きさの異なる複数の円盤から構成される。 最初はすべての円盤が左端の杭に小さいものが上になるように順に積み重ねられている。 円盤を一回に一枚ずつどれかの杭

      ハノイの塔 - Wikipedia
    • 再帰的アルゴリズム - ハノイの塔

      ハノイの塔は1883年にフランスのE.Lucas(リュカ)が考案したゲームと言われています。著書『数学遊戯』の中にあるそうです。  これは次のようなゲームです。 台の上に3本の棒A,B,Cが固定されていて,そのうちの一本に何枚かの円盤が棒を通して重ねられています。円盤は下へいくほど半径が大きくなっています。 このとき,次の規則に従って,円盤をAからBに移動してください。 一回に一枚の円盤しか動かしてはいけません。 移動の途中で円盤の大小を逆に積んではいけません。常に大きい方の円盤が下になるようにして下さい。 棒A,B,C以外のところに円盤を置いてはいけません。 このゲームは元々手で実際にやるものですし,実際に玩具としてこのようなものがあるそうです。しかしここではこれをプログラミングの問題,即ち,解く手順をコンピュータを使って求める問題としましょう。 プログラミングの問題

      • 池田洋介 on Twitter: "ハノイの塔の状態推移図がわかる動画。任意の状態からゴールまでの最短経路もこれですぐに分かります。 https://t.co/h9cBlDI6uJ"

        ハノイの塔の状態推移図がわかる動画。任意の状態からゴールまでの最短経路もこれですぐに分かります。 https://t.co/h9cBlDI6uJ

          池田洋介 on Twitter: "ハノイの塔の状態推移図がわかる動画。任意の状態からゴールまでの最短経路もこれですぐに分かります。 https://t.co/h9cBlDI6uJ"
        • 再帰でハノイの塔を攻略せよ

          プログラマたるものアルゴリズムとデータ構造は知っていて当然の知識です。しかし、教科書的な知識しか知らなくて、実践的なプログラミングに役立てることができるでしょうか(編集部) 最大公約数を求める 「最大公約数を求めるプログラムを作って」といわれて、すぐに書けるでしょうか。 一般的には小学校で最大公約数の求め方を教わります。2つの数を共通する素数で割っていくというものです。そのままプログラムしようとすると、まず素数を求めるところから始めなければならず、少々難しそうです。 最も単純にやるとすれば、2つの数の小さいほうから1ずつ減らして両方の数を割っていき、どちらも余りが0になるものを求めるという方法でよいでしょう。しかしこのやり方は無駄が多そうです。 「ユークリッドの互除法」という方法を使うと簡単にプログラムにすることができます。ユークリッドの互除法とは以下のような方法で最大公約数を求めるやり方

            再帰でハノイの塔を攻略せよ
          • Shoya MATSUMORI, Ph.D. @pineforesta GPT-4はハノイの塔が解けない,というのがなんとも面白い. ハノイの塔はルールに従ってすべての円盤を右端の杭に移動させるパズルゲームだ.実は1960年代にAIの研究が盛んに行われていたときに解かれていた古典的な課題でもある.(1/n)

            • ハノイの塔を攻略せよ!【Windowsプログラミング研究所】

              ハノイの塔を攻略せよ! 概要:再帰呼び出しを使うアルゴリズムとして超有名な「ハノイの塔」を詳細に解説します。 C言語の習得における最大の難関であると言っても過言ではない再帰呼び出し。 2年前、プログラム自体初心者だった私がC言語を学んでいたあの頃、 「明解C言語」の内容はほぼ完璧に理解できたというのにどうしても再帰だけは、 これだけはいまいちピンと来なかった……。 もちろん、全くわからなかったわけじゃーない。 どのような動作をするのか、どのようなときに使うのが有効か、 それくらいはわかった。 なんとなく読める……でも書けない。 そんなレベルだった。 理解できないままプログラムの勉強は続けたが、 殆ど困ることはなく、必要性さえ疑わしい今日この頃。 もしかしたら絶滅したりして!?って言うか、して下さい……(泣)。 みたいなことを願いつつ、やっぱり再帰だけ理解できないのは悔しい! という思いもあ

              • 遠藤諭の東京カレー日記: 4ビットハノイの塔

                「第参回天下一カウボーイ大会対談 古川享 x 遠藤諭 x 清水亮:魂を継ぐものたち」の中で、私が、4ビットマイコンの話をしています。その中で、以下のようなくだりがある。 遠藤 : これで「たまごっち」みたいにピーピー言ったら黙らせるプログラムとか、ハノイの塔とか書くわけです。 古川 : ハノイの塔できた? 清水 : どうやってやるのかわかんないですね。 遠藤 : 書きましたけど、それはこんどまたゆっくりと(笑)。 どちらかというとお二人の発言は、7個のLEDと1個の7セグLEDで、ハノイの塔をどうやって表現するんだ? というニュアンスかもしれませんが。4ビットマイコン版のハノイの塔は、以下のような仕様になっています。 a) 試せる板の枚数は2~13枚まで。 b) 動かす板を小さいほうから1~番号をふった数字で示す。 c) その板の動かし先をLEDの右3個を柱とみなし点灯する

                • ハノイの塔

                  ハノイの塔 ハノイの塔の伝説 今から5000年まえ,インドのベナレスという町に大寺院があり,そこには世界の中心といわれるドームがありました。その中には台が作られていて,その上にはダイヤモンドでできた棒が3本立っていました。インドの神ブラーマは,世界が始まるときに,この棒に黄金でできた円盤を64枚さしておきました。この円盤は下が大きく,上に行くほど小さくできていて,ピラミッド状に積み上げられていました。そして,ブラーマは僧侶たちに次のような修行を与えました。 積み上げられた円盤を,すべて他の棒に移すこと。 その際に,1回に1枚しか動かしてはならない。また,小さな円盤の上にそれより大きな円盤を乗せてはならない。 すべてこの3本の棒を使って移すこと。棒以外のところに円盤を置いてはならない。 ブラーマは,この円盤がすっかり他の棒に移った瞬間に,世界は消滅してしまうと予言しています。5000年たった

                  • 単一SQLクエリでハノイの塔を解いてみよう - Qiita

                    はじめに 再帰演習の定番である「ハノイの塔」をSQLで解きます。基本OracleのSQLで記述していますが、特別なことをしているわけではないので、再帰が使えるSQLであればすこしの手直しで簡単に書き換えらます。ということで最後にPostgreSQL版とMySQL版も載せています。 ハノイの塔の再帰アルゴリズム ハノイの塔には非常に有名な再帰記述アルゴリズムがあります。「複雑そうな動きも再帰で記述するとこんなに簡単になるんだよ」と言える代表格みたいなやつですね。 Hanoi (n, orig, free, dest) { if (n > 1) Hanoi (n - 1, orig, dest, free); printf("%s -> %s\n", orig, dest); if (n > 1) Hanoi (n - 1, free, orig, dest); } アルゴリズム等の詳しい解説

                      単一SQLクエリでハノイの塔を解いてみよう - Qiita
                    • iPhone/iPod touchでハノイの塔【Hanoi】 App9UP

                      「Hanoi」は、iPhone/iPod touchでハノイの塔が出来るアプリです。 ハノイの塔は、左側に積み上げられた円盤を移動して、右側に積み上げるシンプルなパズルゲーム、ただ積み上げるのは簡単ですが、ハノイの塔にはルールがあり、一度に一枚の移動、小さい円盤の上には大きい円盤を置くことはできません。 最高で8段の円盤を移動してHanoiクリアとなる、暇つぶしに、おすすめ出来る無料アプリです。 Hanoi (無料) カテゴリ : ゲーム Version : 1.0 対応 : iPhone 3G/iPod touch(2.0+) ダウンロード : (App Store) Hanoiの使い方 iTunesのApp Storeより「Hanoi」をダウンロードしてiPhone/iPod touchと同期、又はiPhone/iPod touchのApp Storeから「Hanoi」をインストールし

                      • ハノイの塔 - あるいはなぜ自分の書いたコードがうまく動くと信用しないとどうしても書けない種類のコードがあるのかについて | by Rui Ueyama | Medium

                        前回の記事(難しいプログラムでは自分がいままで書いたコードが正しく動くと信じて残りのコードを書く必要がある)は、わかるひとにはわかるけど、わからないひとにはポイントが全然伝わらない記事になってしまっていたようだ。 前回の記事はユニットテストの重要性や仕事の分担の話ではない。下のほうからきっちり作り上げていけば、上のほうではできあがったものを安心して使えるという話でもない。そうではなくてあれは主に再帰の話だ。再帰的なものでは自分自身に言及しているので事前にテストを書いたりできないし、上も下もないのであらかじめパーツを完成させておくということもできない。 ハノイの塔の問題をつかってそれがなぜなのかを誰にでもわかるように説明しよう。ハノイの塔は感動的によくできた例なので覚えておいて損はない。 ハノイの塔は写真にあるようなおもちゃのゲームで、3本の棒の間で円盤を移動させることができるようになってい

                          ハノイの塔 - あるいはなぜ自分の書いたコードがうまく動くと信用しないとどうしても書けない種類のコードがあるのかについて | by Rui Ueyama | Medium
                        • 西尾泰和のブログ: 一般化したハノイの塔問題にひそむ規則性

                          これは2006年冬のプログラミングシンポジウムの GPCCの会議で出た「棒の本数が4本以上のハノイの塔はどうなるのだろう」という疑問について、 1月15日に走り書きして放置していた結果( 西尾泰和の日記(2006-01-16) )を清書したものです。 ハノイの塔問題を知らない方は ハノイの塔 - Wikipedia を参考にしてください。 従来のハノイの塔問題では、棒の数は3本でした。 この場合、板が1枚ならば1手で動かせますが、 2枚の場合は1枚目を脇にどけて2枚目を動かし1枚目を2枚目の上に戻す、 という3手がかかります。 これを、板の枚数2とスタートとゴールをのぞいた 「一時待避用の棒」の本数1とを用いて 「hanoi(2, 1) == 3」と表現します。 また、この待避用の棒が1本あることを 「スペースが1個ある」と表現します。 スペースが1個のハノイの塔問題に関しては 「hano

                          • 再帰でハノイの塔を攻略せよ

                            説明を簡略化するためにどの棒からどの棒に移動するか、棒の番号だけで示します。 0から2 0から1 2から1 0から2 1から0 1から2 0から2 ここで、最初の状態と手順3の後の状態に着目しましょう。最初の状態から手順3の後の状態にするには、上の2つをまとめて真ん中に移動させればよいはずです。円盤が2つの場合の移動の手順はすでに分かっているので、その手順に従って手順3の後の状態にすることができます。 そして手順4の後の状態と最後の状態に着目します。手順4の後の状態から最後の状態にするには、真ん中の2つの円盤をまとめて右の棒に移動させればよいはずです。これも同じ要領で2つの円盤を右に移動できます。 全部移動できたので、円盤3つをまとめて移動する手順が確立されました。 同じ要領で円盤が何個に増えても移動させることができます。つまり以下のような手順になります。円盤の数をnとします。 左の棒から

                              再帰でハノイの塔を攻略せよ
                            • Ruby、同じことの繰り返しは君に任せるよ 〜 再帰でハノイの塔を解こう!〜 - hp12c

                              もし問題が同じパターンの繰り返しを含んでいて その極限の解が明らかならば その問題の解決には再帰が使えるかもしれない 再帰はある問題の答えの中にその問題自体を含む不思議な構造だ 「GNU」は「GNU's Not UNIX」の頭文字からなる略称だ ここで「GNU」は問題であり その答え「GNU's Not UNIX」の中に問題自体が含まれている だからGNUは明らかに再帰だ 「これじゃ答えになってない」 「つまり再帰は問題解決の役には立たない」 そういう声が聞こえてきそうだ つまりあなたは「GNU's Not UNIX」が 「(GNU's Not UNIX)'s Not UNIX」になることを知っており 「((((GNU's Not UNIX)'s Not UNIX)'s Not UNIX)'s Not UNIX)'s Not UNIX」になることも知っており したがって”どこまで行っても望

                                Ruby、同じことの繰り返しは君に任せるよ 〜 再帰でハノイの塔を解こう!〜 - hp12c
                              • ハノイの塔 | 無料ゲームは「ゲームのつぼ」

                                古代インドの寺院で、3本の柱に64枚の黄金の円盤が重ねてあり、バラモン達が日夜それらを移動させているという。その作業が全て終わる時、世界が終焉を迎えるだろう。 上記のようなもっともらしい伝説がありますが、実際には19世紀のフランスで生まれたパズルゲームのようです。 → 上図のように、全てのピースをゴール(オレンジ色の棒)に移動する事が目的となります。ただし、一度に一つのピースしか動かす事ができず、 また各ピースは空いている棒か、自分より大きいサイズのピースの上にしか移動できません。

                                • ハノイの塔100段のゴールまでの最短時間を計算してみた

                                  ハノイの塔のルール 板は1回1枚ずつドラッグして移動する。 小さな板の上に大きな板は置けない。 ゴールの軸に、スタートの状態と同じように板を順に重ねて移動させれば完了。 ハノイの塔のゲームでは、1回動かすのに1秒かかると考えた時、塔の板が8枚に増えた場合、最小で済む移動回数は255回で3分15秒で完了させることができます。このサイトでも最大8枚まで遊べます。 ハノイの塔は、板の枚数をn枚としたとき、最少移動回数は2n-1となるゲームです。フィボナッチ数列の研究でも有名なフランスの数学者リュカが考えました。 Mn=2n-1 ハノイの塔の最少移動回数はメルセンヌ数とも呼ばれています。 メルセンヌ数が素数の時、メルセンヌ素数と呼ばれます。 ハノイの塔が100段の時、ゴールできるまでの最短時間を計算してみた ハノイの塔の板が20枚まで増えた時、完成までに12日以上かかり、25枚では1年以上、40枚

                                    ハノイの塔100段のゴールまでの最短時間を計算してみた
                                  • 『ハノイの塔』

                                    『ハノイの塔』は1883年にフランスのパズル研究家E.リュカが考えたゲームです。 台の上に3本の棒が固定されており、そのうちの一本に何枚かの円盤がはまっています。 円盤は下へいくほど半径が大きくなっています。 話しを簡単にするために、一番左の棒をA、真ん中の棒をB、一番右の棒をCとし、最初にAに何枚かの円盤がはまっているとしましょう。 棒Bを利用して全ての円盤をAからCに移してください。 ハノイの塔のルールは次の通りです。 一回に一枚の円盤しか動かしてはいけない。 移動の途中で円盤の大小を逆に積んではいけない。常に大きい方の円盤が下になるようにする。 棒以外のところに円盤を置いてはいけない。 【問題1】 n枚の円盤を移動するために何回の移動が必要になりますか。 解答用紙はこちらです。 【寄せられた解答】 それでは実際に実験してみましょう。 まず円盤の数を3〜8枚から選んで、S

                                    • ハノイの塔 無料

                                      重要なお知らせ 2018年6月末に予定しているサイトのhttps化に伴い、ゲームの一部の機能が使用できなくなる事が予想されます。また2020年末のFLASHのサポート終了に伴い、当サイトでも2019年中に当ページを含む全てのFLASHコンテンツの削除を予定しています。 以上の事をご了承の上、ゲームのご利用をお願い致します。 ■古今東西で最も有名なパズルの一つ「ハノイの塔」です。 ■左端に積まれているブロックを一個ずつ動かして、右端の列にそのままの順序で積み上げてください。 ■ただし、動かしているブロックよりも小さなブロックの上には置くことができません。 ■ブロックが64個ある場合、積み上げるのに数兆年かかると言われてますが、 ■7個ぐらいまでならそれほど時間はかかりませんので、安心(?)してプレイしてください。

                                      • スドー🍞 on Twitter: "「インドのガンジス河の畔のヴァラナシに、世界の中心を表すという巨大な寺院がある。……司祭たちはそこで、昼夜を通して円盤を別の柱に移し替えている……そして、全ての円盤の移し替えが終わったときに、世界は崩壊し終焉を迎える。」 ハノイの塔 https://t.co/VgPn6awFFH"

                                        「インドのガンジス河の畔のヴァラナシに、世界の中心を表すという巨大な寺院がある。……司祭たちはそこで、昼夜を通して円盤を別の柱に移し替えている……そして、全ての円盤の移し替えが終わったときに、世界は崩壊し終焉を迎える。」 ハノイの塔 https://t.co/VgPn6awFFH

                                          スドー🍞 on Twitter: "「インドのガンジス河の畔のヴァラナシに、世界の中心を表すという巨大な寺院がある。……司祭たちはそこで、昼夜を通して円盤を別の柱に移し替えている……そして、全ての円盤の移し替えが終わったときに、世界は崩壊し終焉を迎える。」 ハノイの塔 https://t.co/VgPn6awFFH"
                                        • 初心者歓迎詐欺被害者の会: 【Ruby】 ハノイの塔を解く

                                          Rubyでハノイの塔を解いてみます。 ソースコード class Hanoi def initialize(disk_num) @disk_num = disk_num @poles = [ {:name => "A", :disks => @disk_num.times.to_a}, {:name => "B", :disks => []}, {:name => "C", :disks => []} ] puts self printf "\e[#{@disk_num + 2}A"; STDOUT.flush; #sleep 0.1 end def to_s "\n" << 3.times.map do "#{" " * (@disk_num + 1)}\e[47m \e[0m#{" " * (@disk_num + 1)}" end.join("") << "\n" << @disk_n

                                            初心者歓迎詐欺被害者の会: 【Ruby】 ハノイの塔を解く
                                          • 2:ハノイの塔は何手で解けるのか?

                                            ●n枚の円盤を棒Aから棒Bへ、棒Cも使って移動することを考えます。円盤には小さい順に1,2,3,・・・,nと番号が振られているものとします。 ルールで、円盤は一番上に乗っているもの1枚しか動かせませんから、n番の円盤をAからBへ移すためには、1番~(n-1)番までの円盤の山が、Cに移っていなければなりません。その時にのみn番の円盤が動かせます。それが終わったら、今、Cに移してある(n-1)枚の円盤をBに移します。 まとめると 1:(n-1)枚の円盤をAからCに移す。 2:n番の円盤を棒AからBに移す。 3:(n-1)枚の円盤をCからBに移す。 ●n枚の円盤を移す手数をanとします。 1では(n-1)枚の円盤を動かしていますから、an-1手かかります。 2ではn番の円盤1枚を動かすだけですから、1手で済みます。 3ではまた、(n-1)枚の円盤を動かしていますから、an-1手かかります。 従っ

                                            • ポールを増やしたハノイの塔の求解【動的計画法、強化学習】 - Qiita

                                              強化学習はゲームやパズルを解く機械学習の手法であり、過去記事1にて、ハノイの塔を強化学習で解く方法を検証しました。 本記事では、ポールの数を3本から4本、5本、…と増やした一般化ハノイの塔について考察します。内容は、以下の2つです。 ・動的計画法による最短手順の導出 ・強化学習による求解 ※ソースコードをGitHubに公開しています。 → https://github.com/akih1992/qiita/tree/master/rl/generalized_hanoi 一般化ハノイの塔について ここでは、ポール数を増やしたハノイの塔を一般化ハノイの塔と呼ぶことにします。ポールが増えた場合、3本のときよりも短手順で求解できるのは明らかですが、最短手順はどうなるのでしょうか。本記事ではこの最短手順を考えます。 ※導出方法を考えるにあたり、一般化ハノイの塔についてまとめているこのWebページ2

                                                ポールを増やしたハノイの塔の求解【動的計画法、強化学習】 - Qiita
                                              • Amazon.co.jp: WODDY STYLE ハノイの塔: Toy

                                                パッケージサイズ(約):幅14×奥11×高2.5cm 対象年齢(約):6歳以上 対象年齢(約):6歳以上

                                                  Amazon.co.jp: WODDY STYLE ハノイの塔: Toy
                                                • ハノイの塔 解説

                                                  This document discusses RxJava, a library for composing asynchronous and event-based programs in Java. It introduces Observables as the core abstraction in RxJava, which are sequences that emit elements to observers. Operators like filter, map, and flatMap allow modifying and transforming Observables. As an example, it shows how to use RxJava to concurrently search for articles by ID, load each ar

                                                    ハノイの塔 解説
                                                  • 再帰でハノイの塔を攻略せよ

                                                    フィボナッチ数列のn番目を求める 最初は0、次が1、3番目以降は直前の2つの数字を足したものになる数列を、フィボナッチ数列といいます。つまり3番目は0+1=1、4番目は1+1=2、5番目は2+1=3、6番目は2+3=5、といった具合に続いていきます。 <html> <body> <script type="text/javascript"> var count = 0; function startCalc() { count = 0; document.getElementById("disp").innerHTML = ""; var number = document.getElementById("number").value; var start = Number(new Date()); display("disp", number + "のフィボナッチ数=" + fibona

                                                      再帰でハノイの塔を攻略せよ
                                                    • ハノイの塔

                                                      ハノイの塔 ハノイの塔 ■古今東西で最も有名なパズルの一つ「ハノイの塔」です。 ■左端に積まれているブロックを一個ずつ動かして、右端の列にそのままの順序で積み上げてください。 ■ただし、動かしているブロックよりも小さなブロックの上には置くことができません。 ■ブロックが64個ある場合、積み上げるのに数兆年かかると言われてますが、 ■7個ぐらいまでならそれほど時間はかかりませんので、安心(?)してプレイしてください。 ネットゲーム HOME

                                                      1