IPA過去問ドリル

令和元年度 秋期 基本情報技術者試験 午前 問10

テクノロジ/アルゴリズム

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

出典:令和元年度 秋期 基本情報技術者試験 午前 問10

正解:イ

解説

ハッシュ関数は各桁の数字の総和を13で割った余りです。54321 の各桁は 5,4,3,2,1 なので総和は 5+4+3+2+1=15 となります。15 を13で割ると商1,余り2なので,mod(15, 13)=2 となり,配列の位置2に格納されます。

選択肢ごとの解説

  • 誤り。1は 15÷13 の「商」であり,ハッシュ関数が求める「余り」ではありません。
  • 正しい。各桁の和15を13で割った余りは2なので,位置2に格納されます。
  • 誤り。7は5桁の数字の和を別の値(例えば15を8で割った余り)で求めた場合などに現れる値で,13で割った余りではありません。
  • 誤り。11は各桁の和を誤って26などとした場合の余りで,5+4+3+2+1=15 からは得られません。
基本情報技術者の過去問を演習モードで解く