基本情報技術者試験 過去問解説
衝突とは?基本情報技術者試験 令和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] に格納する。
この問題の出題ポイント
- 衝突の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- 関連タグ: ハッシュ法、衝突。
選択肢
- アA[3]
- イA[5]
- ウA[6]
- エ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、弱点分析、復習リマインダーは段階的に提供予定です。