修了試験 2015-12-20実施分 基本情報技術者試験 問7
次の規則に従って配列の要素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]に格納する。
正答4
解説
正解は4です。 規則に従い、最初の格納先が埋まっていれば、次の候補(k+1、k+4)を順に調べます。 5つの数を格納順にたどります。 【計算】 16:16 mod 10=6で、A[6]が空いているのでA[6]に格納します。 43:43 mod 10=3で、A[3]が空いているのでA[3]に格納します。 73:A[3]は埋まっているので、(73+1) mod 10=4のA[4]に格納します。 24:A[4]は埋まっているので、(24+1) mod 10=5のA[5]に格納します。 85:85 mod 10=5のA[5]も、(85+1) mod 10=6のA[6]も埋まっています。 そこで、(85+4) mod 10=9のA[9]に格納します。 【選択肢別解説】 1:× A[3]には2番目の43が格納されています。 85の格納先の候補はA[5]、A[6]、A[9]で、A[3]は候補に入りません。 2:× A[5]は85の最初の候補ですが、すでに24が格納されているので使えません。 3:× A[6]は85の2番目の候補ですが、最初の16が格納済みなので使えません。 4:○ 3番目の候補であるA[9]が空いているので、85はA[9]に格納されます。 【ポイント】 ハッシュ法で格納先が衝突したとき、別の場所を順に探す方法をオープンアドレス法といいます。 配列の埋まり具合を1つずつ書き出して追うと、取り違えを防げます。まとめて解く
修了試験 2015-12-20実施分を通しで解く(80問)→