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

| ア | APR |
|---|---|
| イ | FEB |
| ウ | JAN |
| エ | NOV |
答え : イ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
解説 :
アルファベット3文字のキーから,決められた計算式でハッシュ値を求め,別のキーと同じハッシュ値になる(衝突する)ものを探す問題です。表にあるとおり,アルファベットにはA=1からZ=26までの順位が割り振られています。
まず,基準となるキー「SEP」のハッシュ値を計算すると,S=19,E=5,P=16なので,順位の合計は19+5+16=40となり,これを27で割った余りを求めると,40÷27=1あまり13なので,ハッシュ値は13です。一方,「イ」の「FEB」は,F=6,E=5,B=2なので合計は6+5+2=13となり,これを27で割った余りはそのまま13です。SEPのハッシュ値13と一致するため,これが衝突する組み合わせであり,正解は「イ」です。
他の選択肢についても同様に計算すると,「ア」の「APR」はA=1,P=16,R=18で合計35,27で割った余りは8,「ウ」の「JAN」はJ=10,A=1,N=14で合計25,27で割った余りは25,「エ」の「NOV」はN=14,O=15,V=22で合計51,27で割った余りは24となり,いずれも13とは一致しないため不正解です。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズム
解説 :
アルファベット3文字のキーから,決められた計算式でハッシュ値を求め,別のキーと同じハッシュ値になる(衝突する)ものを探す問題です。表にあるとおり,アルファベットにはA=1からZ=26までの順位が割り振られています。
まず,基準となるキー「SEP」のハッシュ値を計算すると,S=19,E=5,P=16なので,順位の合計は19+5+16=40となり,これを27で割った余りを求めると,40÷27=1あまり13なので,ハッシュ値は13です。一方,「イ」の「FEB」は,F=6,E=5,B=2なので合計は6+5+2=13となり,これを27で割った余りはそのまま13です。SEPのハッシュ値13と一致するため,これが衝突する組み合わせであり,正解は「イ」です。
他の選択肢についても同様に計算すると,「ア」の「APR」はA=1,P=16,R=18で合計35,27で割った余りは8,「ウ」の「JAN」はJ=10,A=1,N=14で合計25,27で割った余りは25,「エ」の「NOV」はN=14,O=15,V=22で合計51,27で割った余りは24となり,いずれも13とは一致しないため不正解です。