問題タブ [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.
algorithm - 再帰的ハノイ タワー アルゴリズムの解析
この質問をして申し訳ありませんが、他の既存のスレッドは役に立ちませんでした。複雑なトピックに頭を悩ませるのは難しいと言わざるを得ません。大変申し訳ございません。とにかく、以下を解析しようとしましたが、何かがおかしいです。
コードを解析するのに役立つように、いくつかのメモを走り書きしました。
2 番目の再帰呼び出しが途中で停止し、見落としていることを知りたいと思いました。
反復コードの方がはるかに理解しやすいことがわかり、反復アルゴリズムに基づいて再帰アルゴリズムを作成しました。
ruby - ハノイの塔: Ruby での再帰的な説明
注: 再帰的な解決策を理解しています。しかし、コードの実行の段階をたどることができないため、コードがどのようにそれを達成しているかわかりません。
ハノイの塔の再帰ループを理解するのに苦労しています。手順がどのように動作しているかを確認するためにさまざまな戦術をコメントして試してみましたが、ループがどのように動作しているか、リングがどのように向けられているかを把握できないようです.
出力は次のとおりです。
さまざまな説明を見てきましたが、ループがどのように実行されているかを説明しているものはありません。たとえば、上記のように、リングが偶数の場合、最初のステップでリング 1 が a から b に配置されるのに対し、すべての奇数のリングでは a から c に配置される理由がわかりません。
ソリューションの背後にあるロジックを理解しています。補助ペグを使用しているときに n 個のリングを目的地に移動するには、最初に n-1 個のリングを補助ペグに移動し、次に n 番目のリングを目的地に移動して繰り返す必要があります。最初の手順をもう一度。しかし、配置の方向がどのように変化しているかはわかりません。たとえば、上記の move メソッドの呼び出しが c から b に言及していないように見える場合、ブロックが c から b に移動する方法がわかりません。
お時間を割いてご協力いただき、ありがとうございました。
また、Ruby でコード実行のプロセスを追跡するのに役立つ提案があれば、お知らせください。物事がどのように実行されているかわからないインスタンスをトラブルシューティングする方法について、あなたの洞察を聞きたいです。
あなたの答えを聞きたいです:)
c++ - ハノイの塔 C++ (再帰を使用)
練習問題として以下のコードを書きました。
宛先スタックを印刷すると、正しくない出力が得られます。
誰かが私が間違っているところを指摘できますか?
これが私が得ている出力です:
編集後、コードは次のようになります。
最初の間違いは次のとおりです。
2番目は:
助けてくれてありがとう!
スタック クラスに加えられた変更:
algorithm - アルゴリズムを学びながらアプローチ
アルゴリズムを学んでいて、このハノイタワーに来ました。私は実際にそれを行う方法を知っています。しかし、私はそれをコーディングすることができません。指定されたコードをまだ読んでいません。まずは自分で試しています。私のアプローチはどうあるべきですか?
すべてのアルゴリズムでこのアプローチに従う必要がありますか?
math - プロローグ - 連続する数字を書く_
私のタスクは次のとおりです。このハノイ プログラムに、各文を書き込む前に連続した番号を書き込ませることです。
ハノイのプログラムは次のとおりです。
そして、出力を次のようにしたい: