問題タブ [towers-of-hanoi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1181 参照

c - 「ハノイの塔」の再帰呼び出しの説明が必要

再帰の概念と、各呼び出しで再帰がどのように積み重なっていくかを理解しています。しかし、printf コマンドで区切られた 2 つの関数呼び出しがある場合に、再帰呼び出しがどのように機能し、出力されるかを説明できません。この再帰呼び出しがどのように機能するかを誰かに説明してもらえますか?

「タワーズ オブ ハノイ」というゲームに関する例を見つけました。Ut は再帰の例として使用されました。コード:

n=3このような出力が得られるため

0 投票する
4 に答える
5017 参照

python - パイソンの「カウンター」を備えたハノイの塔

Python で「ハノイの塔」のコードを作成しました。実行回数を示すカウンターを追加しようとしています。while ループや for ループなどをいくつか試しましたが、うまくいきません。答えはとても簡単だと思いますが、私の脳は今、最低の設定で動いています。私のコードは次のようになります。

コードを (2^n)-1 回実行する必要があることはわかっていますが、実装できません。コードの書き方によって値 n が変化するため、それが機能するようになります。(私はこのようなことを試しました:

しかし、私が言ったように、値 n が変化し、それを修正する方法がわかりません。

編集:

明確にするために、次のように歩数を買い物させたい: (If I call Hanoi(3,0,2,1))

0 投票する
1 に答える
2710 参照

python - 4 つの塔を持つハノイの塔

これまでのところ、3 つのタワーでハノイのタワーを作成する方法はわかっていますが、4 つのタワーにフレーム スチュワード アルゴリズムを実装する方法についてはわかりません。

これは、現在の 3 つのタワー関数がどのように見えるかです。

4 つのタワーを使用して別のタワーに n - k ディスクを実装するのに助けが必要です。ある 1 ≤ k < n に対して

ここにアルゴリズムの私の試みがありますが、うまくいきません。助けてください。

0 投票する
1 に答える
563 参照

haskell - ハノイ ハスケルの塔

私はHaskellを使用するのは本当に初めてです。4 つの杭を使用してハノイの塔を完成させるための最小ステップを計算する h4 関数を作成しようとしていました。3 つの杭または h3 を使用して計算する方法は既に取得しています。私の主な問題は、リスト内包表記を使用して最小値を返すことと、メモ化を使用してコードをすばやく実行できるようにすることです。h4 関数を実行するとエラーが発生することを忘れていました。「|」に問題があると言っています。私は haskell を初めて使用し、何が問題なのかわからないため、デバッグできません。

これは私が以下に持っているものです: 私の h3 関数は正常に動作します。主に h4 について助けが必要です

私の擬似コードは次のとおりです。

すべての助けとアドバイスに感謝します。メモ化された関数を追加して h4 関数を改善し、確実に出力を高速化することにしました。h4 メモ化関数を実行すると、次のエラーが発生します:16:1: 範囲外: `memoized_h4'h3 :: Int -> Integer

0 投票する
0 に答える
667 参照

android - 再帰での Android Handler.postDelayed の使用

ハノイの塔に基づいて、各動きのアニメーションを含むアプリを作成しています。すべての長さは 1 秒未満です。手動でパズルを解くオプションと、プログラム自体がパズルを解いてすべてのアニメーションを表示するオプションがあります。私の問題は、プログラムがパズル自体を解こうとしたときに発生します。handler.postDelayed次のアニメーションを開始する前に、パズルが各アニメーションに終了時間を与えるために使用する再帰的な方法で使用しようとしています。

image.get(to)image.get(from)対象となるタワーのクリック可能な ImageView を返します。それらがクリックされると、他のメソッドが適切なアニメーションを実行します。手動でパズルを解いてみると、何の問題もないので、クリック可能な画像やアニメーションに問題があるとは思えません。問題は、プログラムが 2 番目のアニメーションを開始する前に最初のアニメーションの実行を終了するのに十分な時間がないことです。私のメソッドの設定方法では、アニメーションが終了する前にアニメーションを開始しようとするとクラッシュします。(これは手動実行中の問題ではありません。) プログラムを実行すると、最初のアニメーションの前に長い一時停止があり、そのアニメーションが完了した直後にクラッシュします。では、これはどこに遅延を配置するか、タイミング、またはその他の問題ですか? 私のコードをもっと見る必要がある場合は、尋ねてください。前もって感謝します!

0 投票する
2 に答える
81 参照

java - 非静的メソッド towersOfHanoi(int, int, int, int) は静的コンテキストから参照できませんか?

テスターをコンパイルすると、9行目に次のように表示されます。

非静的メソッド towersOfHanoi(int, int, int, int) は静的コンテキストから参照できません

towersOfHanoi メソッドに到達できないのはなぜですか?

以下の2つのクラスを提供しました。

0 投票する
3 に答える
98 参照

java - 機能しているが機能していないはずのハノイ タワーズ

古典的なハノイの問題があります。私はこの再帰の問題に取り組んでいます。これは完全に機能していますが、どのように機能するのかわかりません! 私が理解しているように、任意の n に対して、"from + " going to " + through" と出力されます。これは、n が 1 に近づくたびに発生します。n=1 でコードが停止すると考えられます。それでも、「thru +」から「+ to」への出力(最後の出力)が得られます。n=1 が終了条件の場合、コードの最後の部分を「無料で」入手するにはどうすればよいでしょうか。

また、コードが反復ごとに少なくとも最後の出力を実行することも期待していましたが、違います! また、この例には常に 2 つの再帰呼び出しが含まれますが、これは 1 つだけでも問題なく機能します。一体何が起こっているのですか?このコードはどのように実行されますか? 再帰メソッドに関する基本的な事実を誤解していませんか? (Eclipse コンパイラーでコンパイル)。

0 投票する
5 に答える
23936 参照

python - Towers of Hanoi Python - 再帰を理解する

私は Python がまったく初めてで、現在、ハノイの塔と再帰に関するチュートリアルを進めています。彼らがこの例を与えるまで、私は再帰を理解していると思っていました:

これは、3 つのディスクを使用してハノイの塔問題を解くための正しい動きを出力します。 ディスクを A から B に移動 ディスクを A から C に移動 ディスクを B から C に移動 ディスクを A から B に移動 ディスクを C から A に移動AからBにディスクを移動する

私の質問は、どうやってそうするのですか?! 誰かがコード行を調べて、正しい動きをどのように出力するかを理解できますか? 私は主に、 と の値が から にどのように変化するかについて混乱fpしてtpいます。これが少し広い質問である場合は申し訳ありません!どんな助けでも大歓迎です!ABC