基本情報技術者試験 - 令和6年1月修了 - 問6
アルファベット3文字で構成されるキーがある。次の式によってハッシュ値hを決めるとき,キー “SEP"と衝突するのはどれか。ここで,a mod bは,aをbで割った余りを表す。
h =(キーの各アルファベットの順位の総和)mod 27
h =(キーの各アルファベットの順位の総和)mod 27

| ア | APR |
|---|---|
| イ | FEB |
| ウ | JAN |
| エ | NOV |
答え : イ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
解説 :
アルファベットの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とは衝突しません。ハッシュ関数の性質上,異なる文字列でも同じハッシュ値になることがあり,これを「衝突」と呼びます。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
解説 :
アルファベットの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とは衝突しません。ハッシュ関数の性質上,異なる文字列でも同じハッシュ値になることがあり,これを「衝突」と呼びます。