基本情報技術者試験 過去問解説

衝突とは?基本情報技術者試験 令和2年度 科目A 修了認定試験 問9を解説

基本情報技術者試験 令和2年度 科目A 修了認定試験 問9は、衝突に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

次の規則に従って配列の要素 A[0], A[1], ..., A[9] に正の整数 k を格納する。k として 16、43、73、24、85 を順に格納したとき、85 が格納される場所はどこか。ここで、x mod y は、x を y で割った剰余を返す。また、配列の要素は全て 0 に初期化されている。 〔規則〕 - (1) A[k mod 10] = 0 ならば、k を A[k mod 10] に格納する。 - (2) (1)で格納できないとき、A[(k+1) mod 10] = 0 ならば、k を A[(k+1) mod 10] に格納する。 - (3) (2)で格納できないとき、A[(k+4) mod 10] = 0 ならば、k を A[(k+4) mod 10] に格納する。

この問題の出題ポイント

  • 衝突の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: ハッシュ法、衝突。

選択肢

  1. A[3]
  2. A[5]
  3. A[6]
  4. A[9]正解

正解

: A[9]

解説

16→A[6]、43→A[3]、73→A[3] 衝突→(73+1)%10=4→A[4]、24→(24)%10=4 衝突→A[5]、85→(85)%10=5 衝突→(85+1)%10=6 衝突→(85+4)%10=9→A[9] に格納。

解き方の整理

衝突の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。