シノニムとは?
シノニムとは、異なるキーがハッシュ関数によって同じ格納位置に割り当てられてしまうこと、およびそうなったキーどうしのこと。衝突(コリジョン)ともいう。格納位置の数はキーの取りうる値より少ないため原理的に避けられず、必ず対処方法が必要になる。
基本情報技術者試験の過去問では1回出題されています。
しのにむ
シノニムの意味
異なるキーがハッシュ関数によって同じ格納位置に割り当てられてしまうこと、およびそうなったキーどうしのこと。衝突(コリジョン)ともいう。格納位置の数はキーの取りうる値より少ないため原理的に避けられず、必ず対処方法が必要になる。
シノニムの具体例
配列サイズ10で「キーmod10」を使うと、キー25と35はどちらも位置5になりシノニムとなる。この場合、後から来た35を別の空き位置に置く(オープンアドレス法)か、位置5から連結リストでつなぐ(チェイン法)のどちらかで対処する。
シノニムは試験でどう引っ掛けられる?
「良いハッシュ関数を選べば衝突は起きない」は誤り。鳩の巣原理により、格納位置数を超えるキーがあれば衝突は必ず生じる。良い関数の役目は衝突を無くすことではなく、発生を均等かつ少なくすることである。
シノニムと関連する用語
シノニムが出た過去問
表探索におけるハッシュ法の特徴はどれか。
正解:キーの関数値によって格納場所を決める。
要点:ハッシュ法はキーの関数値で格納位置を決め、衝突対策が要る
ハッシュ法は、キーにハッシュ関数を適用して得た値から格納位置を直接決める方式である。キーを比較しながら探すのではなく計算で位置が求まるため、理想的にはデータ件数によらず一定時間で探索できる。ただし異なるキーが同じ位置に割り当てられる衝突(シノニム)は起こり得るので、チェイン法やオープンアドレス法などの対策が必要になる。
出典:平成30年度 春期 基本情報技術者試験 午前 問7(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。