若干修正されたTOHでは、4つのペグがあります。したがって順番に合計4^Nのディスク位置があります。 今はスルー行っていた解決策の一つに、所定の状態は、コードの下に使用して表されている -ハノイの塔のすべての州のバイナリ表現
for(int disc = 0; disc < N; disc++){
state += tower[disc]<<(disc*2);
}
タワー[ディスク] - >することができ、ディスクが現在位置している塔、(0,1 、2,3)
上記のコードでN = 3を使用すると、63が得られます。これは4^N -1です。したがって、数式は機能します。つまり、0〜63のすべての64の位置を表すことができます。私は数学的な相関関係を理解することができません。
あなたはすべての可能なディスクの位置を表すことができ、我々はさらにあなたが唯一の4つのペグの位置を持っているので、5
「数式が機能する」ということを詳しく説明できますか?数値を使用してディスクの位置を符号化する方法を見つけ出すか、または2進数で問題を解決するという目標はありますか? – templatetypedef
@templatetypedef -goalは、ディスク位置のコード化と上記の式がどのように機能しているかを理解することであり、問題を解決するものではありません。私は、Nの値やペグの数が変化したときに、どのように式を修正する必要があるのかを理解しようとしています。 –