単元一覧 › 大学数学 アルゴリズムと計算量

アルゴリズムと計算量の問題

難易度 1教科書の例題レベル大学数学 アルゴリズムと計算量

スロット番号が の 個のスロットからなるハッシュ表を、オープンアドレス法(線形探査)で使う。はじめはすべてのスロットが空である。0 以上の整数のキー を挿入するときは、 の順にスロット

を調べ、最初に見つかった空のスロットに を格納する。1 回の挿入で調べたスロットの個数(格納先の空のスロットも含める)を、その挿入の「探査回数」と呼ぶ。

キー

をこの順に挿入するとき、 回の挿入の探査回数の合計を求めよ。

この問題で使うもの

この問題を解けるようになるまで(71 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 樹形図で数え上げる
  2. 積の法則と和の法則
  3. 和の法則・積の法則と樹形図
  4. 順列・円順列・重複順列
  5. 組合せ
  6. 確率の定義と和事象・余事象
  7. 期待値
  8. 確率変数と確率分布
  9. 平均と合計
  10. 平均値・中央値・最頻値
  11. 代表値(平均値・中央値・最頻値)
  12. 分散と標準偏差
  13. 変量の変換と平均・分散
  14. 確率変数の期待値・分散と
  15. 確率変数の和と積(独立な場合)
  16. 指示変数と期待値の線形性
  17. 条件付き確率と乗法定理
  18. 独立な試行と反復試行
  19. 分数のたし算・ひき算
  20. 小数の四則計算
  21. 正負の数の加法・減法
  22. 分数のかけ算・わり算
  23. 四則の混じった計算の順序
  24. 正負の数の乗除・累乗と四則混合
  25. 分配法則を使った計算のくふう
  26. 文字式の計算(同類項・分配法則)
  27. 乗法公式による展開
  28. 因数分解
  29. 3 次式までの展開と因数分解
  30. 微分係数と導関数の定義
  31. 多項式の微分
  32. 小数と分数のまじった計算
  33. 逆算(□ を求める)
  34. 1 次方程式の解き方
  35. 比例・反比例の式とグラフ
  36. 約数の見つけ方
  37. 素因数分解と約数の個数
  38. 平方根の意味と根号の簡単化
  39. 関数 の式と変域
  40. 平方完成と 2 次関数のグラフ
  41. 2 次不等式
  42. 剰余の定理・因数定理と高次方程式
  43. 増減表と極値
  44. 等間隔にならんだ数の和
  45. 等差・等比数列の和と Σ
  46. 数列の極限
  47. 関数の極限
  48. 関数の連続性と中間値の定理
  49. 平均値の定理
  50. 積と商の微分
  51. 第 2 次導関数とグラフの凹凸
  52. 合成関数の微分
  53. 円の周の長さと面積
  54. おうぎ形の弧の長さと面積
  55. 弧の長さからおうぎ形の中心角と面積を求める
  56. 三角形・四角形の面積
  57. 三平方の定理
  58. 特別な直角三角形の辺の比
  59. 弧度法と単位円による三角関数
  60. の極限
  61. 加法定理と 2 倍角・半角・積和の公式
  62. 三角関数の導関数
  63. 根号の乗除と加減
  64. 指数の拡張と指数関数
  65. 対数の定義と性質
  66. 自然対数の底
  67. 指数関数・対数関数の導関数
  68. 増減・凹凸・漸近線とグラフ
  69. テイラー展開
  70. ハッシュの衝突確率(誕生日問題)
  71. ハッシュの衝突の期待値

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

キーを与えられた順に 1 つずつ挿入し、どのスロットが埋まっているかを毎回書き出していきましょう。最初に調べるスロットは です。

ヒント 2

埋まっていたら次のスロット(番号 )を調べます。スロット の次はスロット に戻ることに注意します。

ヒント 3

の探査回数は順に で、この時点でスロット が埋まっています。残りの を続けて調べましょう。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

方針:キーを 1 つずつ挿入し、そのたびに埋まっているスロットを記録する。

まず各キーの (最初に調べるスロット)を求めます。

線形探査では、スロットが埋まっていれば番号を ずつ増やして次を調べ、 の次は に戻ります。

  • :スロット は空 → 格納。探査回数 。埋まっているスロット
  • :スロット は空 → 格納。探査回数 。
  • :(埋)→ (空)に格納。探査回数 。
  • :(埋)→ (埋)→ (空)に格納。探査回数 。
  • :スロット は空 → 格納。探査回数 。
  • :(埋)→ (空)に格納。探査回数 。
  • :(埋)→ (埋、 の次は に戻る)→ (空)に格納。探査回数 。
  • :(埋)→ (空)に格納。探査回数 。

よって探査回数の合計は

(線形探査では、埋まったスロットが連続した塊(クラスタ)になり、その塊にハッシュされたキーほど探査回数が増えます。この例でもスロット から始まる塊が伸びるにつれて探査回数が大きくなっています。)

別解

各キーのハッシュ値 を求め、順に挿入する。
- 22: 22 mod 11 = 0。スロット0は空 → 格納。探査1回。
- 5: 5。スロット5は空 → 探査1回。
- 16: 16 mod 11 = 5。スロット5は使用中、スロット6は空 → 探査2回。
- 27: 27 mod 11 = 5。スロット5、6は使用中、スロット7は空 → 探査3回。
- 10: 10。スロット10は空 → 探査1回。
- 38: 38 mod 11 = 5。スロット5、6、7は使用中、スロット8は空 → 探査4回。
- 21: 21 mod 11 = 10。スロット10は使用中、スロット0も使用中、スロット1は空 → 探査3回。
- 6: 6。スロット6、7、8は使用中、スロット9は空 → 探査4回。

合計は 1+1+2+3+1+4+3+4 = 19。

確認: 最終的な表は 0:22, 1:21, 5:5, 6:16, 7:27, 8:38, 9:6, 10:10 である。各キーについて、ハッシュ値から格納先までの距離+1が探査回数になる。22:1、5:1、16:2、27:3、10:1、38:4、21:(1-10) mod 11 + 1 = 3、6:(9-6)+1 = 4。合計19で一致する。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題