FE SUBJECT B
基本情報技術者 科目Bの問題解説
問題
次の手続 hashProbeScore() を実行したときの戻り値はどれか。
○整数型: hashProbeScore()
整数型の配列: key ← {14, 22, 30, 9, 17}
整数型の配列: table[1..8] ← すべて空
各keyを (key mod 8) + 1 を初期位置として線形探索法で格納する
整数型: p30 ← 30を探索するときに調べた位置数
整数型: p17 ← 17を探索するときに調べた位置数
return p30 × 10 + p17- ア 22
- イ 23
- ウ 32
- エ 33
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:32
正解:32
14,22,30はいずれも初期位置7で衝突するため、14は7、22は8、30は1に入る。9は2、17は2が埋まっているので3に入る。30を探すと7→8→1の3か所、17を探すと2→3の2か所を調べるので、戻り値は3×10+2=32。
23はp30とp17を逆にした値。22は30の探索で循環して1を見る必要を落とした場合、33は17も3回調べると誤った場合に出やすい。
ハッシュ表の線形探索では、格納時と探索時で同じ衝突処理をたどる。何番目に見つかるかを数える問題では、空き場所ではなく調べた位置数を数える。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。