過去問ハブ🔥 0日
データ構造とアルゴリズムグラフアルゴリズム・動的計画法難易度 標準36 / 50

フィボナッチ数 F(n) = F(n−1) + F(n−2) を定義どおりの単純な再帰で計算すると、計算量は指数時間になる。計算済みの値を表に記録して再利用する方法に変えたときの時間計算量はどれか。ここで、加算は定数時間で行えるものとする。

選択肢をタップすると、その場で答え合わせできます

正解と解説を見る

正解 C

解説

正解は「」です。単純な再帰では、F(n−2) が F(n) と F(n−1) の両方から呼ばれるように同じ部分問題が何度も計算され、呼出し回数が指数的に増えます。計算済みの値を表に記録して再利用するメモ化や、F(0) から順に表を埋める動的計画法では、F(0) から F(n) までを1回ずつ計算すればよいので になります。「」は、行列のべき乗を繰り返し2乗法で計算する特別な方法の計算量で、表に記録するだけでは達成できません。「」は、各値の計算でそれまでの値をすべて見直すような場合の計算量です。「」は、単純な再帰のままの計算量の目安です。

  • #動的計画法
  • #メモ化

この調子でデータ構造とアルゴリズムを続けて解く

▶ この科目の連続演習へ進む(10問)

この問題の分野を深く学ぶなら

PR情報工学・理系基礎の教科書を探す

詳細を見る

データ構造とアルゴリズムの問題一覧へ戻る

「グラフアルゴリズム・動的計画法」の関連問題