• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ハノイの塔の計算時間についての質問です。)

ハノイの塔の計算時間についての質問

このQ&Aのポイント
  • ハノイの塔の時間計算量が 2n - 1 になる理由を解説します。
  • ハノイの塔の計算時間を示す式 T(n) = 2T(n-1) + 1 の意味を解説します。
  • ハノイの塔の計算時間を求めるテクニックについて解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

Aに積まれている円盤n-1枚を、Cに移す手順をT(n-1) とする。 CからBに移すのもT(n-1)、BからCに移すのにもT(n-1)かかります。 Aに積まれている円盤n枚を、Cに移す手順をT(n) とすると、 すでにCに積まれているn-1枚をBに移すのにT(n-1)、、n枚の一番大きい1枚をCに移すのに1回、 Bに移したn-1枚をCに移すのにT(n-1)かかるので、n枚をCに移すには、2T(n-1)+1回かかります。 T(n)=2T(n-1)+1です。 したがって、 T(n)+1=2{(Tn-1)+1)} ここで、n=2,3,4・・・nとすると、 T(2)+1=2{T(1)+1} T(3)+1=2{T(2)+1} T(4)+1=2{T(3)+1}  ・  ・ T(n-1)+1=2{(T(n-2)+1} T(n)+1=2{T(n-1)+1} で、辺々掛け算して、T(2)+1、T(3)+1、T(4)+1・・・T(n-1)+1で割ると、 T(n+1)+1=2^(n-1){T(1)+1}=2^(n-1)*2=2^n 結局、 T(n)=2^n-1 です。 「T(n)を求める時のテクニックで」す。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

#2です。 T(n+1)+1=2^(n-1){T(1)+1}=2^(n-1)*2=2^n これミスです。 T(n)+1=2^(n-1){T(1)+1}=2^(n-1)*2=2^n ですね。

すると、全ての回答が全文表示されます。
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

T(n) = 2T(n-1) + 1 これを T(n) + a = 2{T(n-1) + a} の形にできそうだから、その形にしたのです。 「できそう」かどうかのひらめき?は、経験によるものでしょうね。 T(n) + a = 2{T(n-1) + a} T(n) + a = 2T(n-1) + 2a T(n) = 2T(n-1) + a なので、a=1 よって、 T(n) + 1 = 2{T(n-1) + 1}

すると、全ての回答が全文表示されます。

関連するQ&A