問題タブ [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 に答える
1054 参照

algorithm - Towers of Hanoi Algorithm で、補助とは何ですか?

たとえば、次のハノイの塔のアルゴリズムでは、次のようになります。

補助語は何を表すと仮定しますか?

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

towers-of-hanoi - ハノイの塔の注文番号

ハノイの塔の問題は、以下をどのように実装すればよいですか? 私を助けてください !

http://imageupload.co.uk/files/qpxsdyyxtbl5ik38zcn0.jpg

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

haskell - 移動回数 ハノイハスケル

n個の「ディスク」と3本のスティック( A 、 B 、 C )の動きの数を知るために、haskellでコードを書く方法を知りたい

基本ケース ( N=1): 動き A --> C なので 1 動き

帰納的な場合 ( N = M+1 ) : M 個のディスク "A" ---> "C" を移動し、1 つのディスク "A" ---> "B" を移動し、最後に "C" から M 個のディスクを移動します。 「B」に。deコードは次のようになると思いました:

残念ながら、これは numMoveHanoi 2 の場合にしか機能しません。それ以外の場合、結果は間違っています。再帰定義のどこが間違っているのかわかりません。

みんな、ありがとう。

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

algorithm - 解析アルゴリズム - 漸化式 (ハノイの塔)

ウィキペディアでハノイの塔を解くこの再帰アルゴリズムを見ました。誰かがこのアルゴリズムの再帰方程式を得る方法を説明してもらえますか?

再帰的な解決策

  • ペグ A、B、C にラベルを付けます — これらのラベルは異なるステップで移動する場合があります
  • n をディスクの総数とする
  • ディスクに 1 (最小、一番上) から n (最大、一番下) までの番号を付けます。

ペグ A からペグ C に n 個のディスクを移動するには:

  • n−1 個のディスクを A から B に移動します。これにより、ディスク n だけがペグ A に残ります。
  • ディスク n を A から C に移動する
  • n−1 個の円盤を B から C に移動して、円盤 n の上に置く

上記は再帰的なアルゴリズムです。ステップ 1 と 3 を実行するには、同じアルゴリズムを n-1 に再度適用します。ある時点でn = 1のアルゴリズムが必要になるため、手順全体は有限数のステップです。このステップ、つまり単一のディスクをペグAからペグBに移動するのは簡単です。

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

java - ユーザー入力を正しく機能させようとしています

完成に近づいているハノイの塔のパズル プログラムがあります。私の問題は、ユーザーからの入力を適切に機能させることです。

「v」または「V」と入力すると、パズルを解く手順が表示されます (したがって、出力は「ディスクを S から D に移動する」などになります)。それ以外の場合、ユーザーが 'v' または 'V' を入力しない場合、プログラムはパズルの解決を続行し、合計手数を表示しますが、ステップは表示しません。

私が抱えている問題は、オプションが想定どおりに機能しないことです。

唯一の問題は、ユーザー入力が 'v' または 'V' の場合、動きが正しく表示されないことです。出力:

ユーザーが「v」または「V」と入力した場合に移動を表示するにはどうすればよいですか? また、ユーザーがこれ以外を入力した場合、出力には「Total Moves」だけが表示されますか?

これが私のコードです:

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

java - 特定のケースの If/else ステートメント

こんにちは、タワーズ オブ ハノイ パズル プログラムです。現在、「ディスクの数を入力してください」というプロンプトが表示されたときに空白の場合 (つまり、整数値を入力せずに Enter キーを押した場合)、プログラムで 3 つのディスクを解決するのに問題があります。

* 私のハノイ メソッド内の if/else ステートメントは、問題があると思われる場所です。問題があると思われる場所をコメントアウトしました。「ディスクの数を入力してください」というプロンプトが表示されたときに何も入力されていない場合、プログラムが 3 つのディスクだけを解決するようにするにはどうすればよいですか? *

コード:

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

java - Java 範囲入力の混乱

今日、ハノイの塔のプログラムを作成しました。最後のステップは、コードに入力の範囲を実装することです。

プログラムは、最小数のディスクと最大数のディスクを要求します。この範囲では、プログラムは、この範囲内のディスクの数が増えるたびにパズルを解く必要があります。

例(私のコードによると):

ディスクの最小数を入力してください: 3 ディスクの最大数を入力してください: 6

出力は、それぞれ 3、4、5、および 6 ディスクに対して解決されます。

RANGE IS WORKING NOW WORKING NOW WORKING NOW WORKING NOW WORKING NOW WORKING NOW WORKING NOW WORKING NOW WORKING NOW, but if I have 入力の最小 Discs: 3 最大数の Disc を入力: 2 出力は、最小数の Disc、この場合は 3 Disc に対してのみ解決する必要があります。

コード: