修了試験 2014-01-26実施分 基本情報技術者試験 問8
アルファベット3文字で構成されるキーがある。 次の式によってハッシュ値hを決めるとき,キー"SEP"と衝突するのはどれか。 ここで,a mod bは,aをbで割った余りを表す。 h=(キーの各アルファベットの順位の総和)mod 27 (アルファベットの順位はA=1,B=2,C=3,…,Z=26とする。)
正答2
解説
正解は2です。 ハッシュ法で、異なるキーから同じハッシュ値が得られることを衝突(シノニムの発生)といいます。 "SEP"と同じハッシュ値になるキーを、式に当てはめて探します。 【計算】 SEPは、S=19、E=5、P=16です。 総和は19+5+16=40です。 40 mod 27=13なので、SEPのハッシュ値は13です。 FEBは、6+5+2=13で、13 mod 27=13です。 【選択肢別解説】 1:× APRは、A=1、P=16、R=18で総和35です。 35 mod 27=8となり、13とは異なります。 2:○ FEBは、F=6、E=5、B=2で総和13です。 13 mod 27=13となり、SEPと同じハッシュ値なので衝突します。 3:× JANは、J=10、A=1、N=14で総和25です。 25 mod 27=25となり、13とは異なります。 4:× NOVは、N=14、O=15、V=22で総和51です。 51 mod 27=24となり、13とは異なります。 【ポイント】 mod 27は27で割った余りなので、総和が27以上なら27を引いて考えます。 衝突が起きたときの対処法には、オープンアドレス法やチェイン法があります。まとめて解く
修了試験 2014-01-26実施分を通しで解く(80問)→