データベーススペシャリスト試験 2016年 午前202


k次のB木構造において, ルートノードはi個(1≦i≦2k)のレコードをもち, ルート以外のノードはj個(k≦j≦2k)のレコードをもつものとする。ルートノードを1段目とした場合, B木は1段目からn段目までに最大何レコードを格納することができるか。ここで, k, nは自然数とし, n≧2とする。
(正解)

解説

k次のB木構造における最大レコード数の計算【午前2 解説】

要点まとめ

  • 結論:B木の最大レコード数はルートを含む全段のノード数の合計で決まり、答えは です。
  • 根拠:ルートノードは最大 個のレコードを持ち、子ノード数は最大 個。各段でノード数が 倍に増えるため、全段の合計は等比数列の和となります。
  • 差がつくポイント:ルートノードのレコード数の範囲と子ノード数の関係を正確に理解し、段数ごとのノード数の増加を正しく計算できるかが重要です。

正解の理由

B木の定義により、
  • ルートノードは最大 個のレコードを持ち、子ノード数は最大 個です。
  • ルート以外のノードは最大 個のレコードを持ちます。
    1段目(ルート)は1ノードで最大 レコード、2段目は最大 ノード、3段目は ノード…と増加します。
    したがって、 段目までの最大ノード数は

    各ノードが最大 個のレコードを持つため、最大レコード数は

    よって、選択肢イが正解です。

よくある誤解

ルートノードのレコード数を他のノードと同じ範囲で考えたり、子ノード数を と誤認することが多いです。これにより計算がずれてしまいます。

解法ステップ

  1. ルートノードの最大レコード数と子ノード数を確認する()。
  2. 各段のノード数が 倍で増えることを理解する。
  3. 段目までのノード数の合計を等比数列の和で計算する。
  4. 各ノードの最大レコード数 を掛けて最大レコード数を求める。
  5. 計算結果を選択肢と照合し、正解を選ぶ。

選択肢別の誤答解説ステップ

  • ア:
    → ノード数の合計を1段目から数えず、段数を1つ少なく計算している。
  • イ:
    → 正解。全段のノード数合計に最大レコード数を正しく掛けた結果。
  • ウ:
    → ルートノードのレコード数を2と誤認し、段数の指数もずれている。
  • エ:
    → ルートノードのレコード数を2と誤認し、指数は正しいが掛け算が誤り。

補足コラム

B木はデータベースやファイルシステムで広く使われる平衡木構造で、ノードのレコード数と子ノード数に制約があります。これにより検索や挿入・削除の効率が保証されます。今回の問題はB木の構造理解と数列計算の応用力を問う典型問題です。

FAQ

Q: なぜ子ノード数は になるのですか?
A: ノードのレコード数が最大 個であるため、子ノード数はレコード間の区切り数+1で 個となります。
Q: ルートノードのレコード数が他のノードと異なる理由は?
A: ルートノードは特別に1個以上 以下のレコードを持ち、他のノードは最低 個以上のレコードを持つため、条件が異なります。

関連キーワード: B木, 平衡木, データ構造, 等比数列, 木構造, 最大レコード数, 検索効率
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ