基本情報技術者試験 - 令和6年1月修了 - 問6

アルファベット3文字で構成されるキーがある。次の式によってハッシュ値hを決めるとき,キー “SEP"と衝突するのはどれか。ここで,a mod bは,aをbで割った余りを表す。

h =(キーの各アルファベットの順位の総和)mod 27

アAPR
イFEB
ウJAN
エNOV
答え : イ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
同一問題 : 〔令6修12問6〕〔令4修1問8〕〔平26修1問8〕〔平22修7問6〕
解説 :
アルファベットの3文字からなるキーに対して,ハッシュ値を計算し,指定されたキーと同じハッシュ値になる(衝突する)選択肢を選ぶ問題です。

まず,添付の画像の表を使って,各アルファベットの順位(Aが1,Bが2,というように,Zが26まで続く番号)を確認します。基準となるキー「SEP」の順位の合計は,Sが19,Eが5,Pが16なので,19+5+16=40です。この40を27で割った余り(mod)を求めると,40÷27=1あまり13なので,SEPのハッシュ値は13です。

同じように選択肢を計算すると,「イ」のFEBはFが6,Eが5,Bが2で合計13,13を27で割った余りは13となり,SEPと同じハッシュ値になります。したがって正解は「イ」です。

他の選択肢「ア」APR,「ウ」JAN,「エ」NOVについても同様に計算すると,いずれも合計や余りが13にはならず,SEPとは衝突しません。ハッシュ関数の性質上,異なる文字列でも同じハッシュ値になることがあり,これを「衝突」と呼びます。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる