カコモンノート

問27応用情報技術者 平成30年度 秋期

27 / 80問
平成30年度 秋期2018年

自然数を除数とした剰余を返すハッシュ関数がある。値がそれぞれ571,1168,1566である三つのレコードのキー値を入力値としてこのハッシュ関数を施したところ,全てのハッシュ値が衝突した。このとき使用した除数は幾つか。

選択肢をえらぶと、答えと解説が出ます

選択肢をえらぶと、
ここに答えと解説が出ます
正答 3

解説

正解は3。同じ数で割った余りが等しいなら、2つの値の差はその数で割り切れる。差をとると
1,168−571=597=3×199
1,566−1,168=398=2×199
となり、共通の約数は199(199は素数)。実際に割ると571=2×199+173、1,168=5×199+173、1,566=7×199+173で、余りはどれも173になる。

  • 1の193で割ると、571の余りは185、1,168の余りは10で一致しない。
  • 2の197で割ると、571の余りは177、1,168の余りは183で一致しない。
  • 4の211で割ると、571の余りは149、1,168の余りは113で一致しない。

根拠:剰余(除算法)によるハッシュ関数と合同式の性質。

KEY POINT
余りが等しい値どうしの差は除数で割り切れる。衝突した除数は差の公約数から探す。
出典:平成30年度 秋期 応用情報技術者試験 午前 問27(独立行政法人 情報処理推進機構(IPA))
独立行政法人情報処理推進機構(IPA)が公表している過去問題です。IPA の「過去問題の使用について」に基づき、IPA が指定する形で出典を明記して掲載しています(利用の許諾申請は不要)。問題文・選択肢の内容は変えていません。元の問題冊子から文字を起こす都合で、改行・字間の空白は省き、英数字の全角・半角は元とそろえていない箇所があります。図表は IPA が公表した問題冊子のものです。解説は当サイトが独自に作成したもので、IPA とは関係ありません。