SkillStack
テクノロジ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に質問できる
SkillStackで無料で始める