過去問解きまくり研究所 ホーム

平成25年度 春期 午前 問7

アルゴリズム

ハッシュ法に関する問題

10 進法で 5 桁の数 a₁a₂a₃a₄a₅ を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a₁+a₂+a₃+a₄+a₅,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321 は配列のどの位置に入るか。ここで,mod(x,13) は,x を 13 で割った余りとする。

〔図〕配列(字で書き起こしたもの)

位置   配列
  0   [   ]
  1   [   ]
  2   [   ]
  ⋮       ⋮
 11   [   ]
 12   [   ]
答えと解説を見る

✓ これが正解イ2

解説

各桁の和15を13で割った余りの2に入ります。

この問の要点は、ハッシュ関数の中身をそのまま読むことです。設問の関数は、5つの桁の値を足したものを13で割った余りを返す、と書かれています。ですから最初にするのは、対象の数を桁ごとにばらして足すことです。5と4と3と2と1を足すと15になります。次にその15を13で割ります。13は1回だけ引けて、残るのは2です。この余りがそのまま格納する位置になります。判定の軸は一つで、13で割る相手が桁の和になっているかどうかを見ます。配列の位置が0から12までの13個で用意されているのも、13で割った余りが必ずその範囲に収まるからで、求めた値が範囲に収まっていることは確かめに使えます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成25年度 春期 基本情報技術者試験 午前 問7

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)