テクノロジ6 / 80問
応用情報技術者試験 令和6年度 秋期 午前 問6
自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を
h(x) = x mod n
とすると,任意のキー a と b が衝突する条件はどれか。ここで,n はハッシュ表の大きさであり,x mod n は x を n で割った余りを表す。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
【解説】 ハッシュ関数 h(x) = x mod n において,キー a と b が衝突する条件は h(a) = h(b) です。
h(a) = h(b) ということは,a mod n = b mod n です。 これは a と b を n で割った余りが等しいことを意味し,a - b が n の倍数であることと同値です。
よって,イの「a-b が n の倍数」が正解です。
アの「a+b が n の倍数」は,例えば a=3, b=5, n=4 のとき a+b=8 は4の倍数ですが,h(3)=3, h(5)=1 で衝突しません。 ウの「n が a+b の倍数」やエの「n が a-b の倍数」は条件が逆です。
【ポイント】 mod演算の性質として,a mod n = b mod n ⇔ (a-b) mod n = 0 ⇔ a-b は n の倍数,という関係を理解しましょう。
出典:令和6年度 秋期 応用情報技術者試験 午前 問6
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の80問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる