シノニムとは?しのにむ
シノニムとは、ハッシュ表で別々のキーが同じ位置に当たってしまう現象、およびぶつかった相手のキーを指す語。衝突(コリジョン)とも呼ぶ。キーの種類は格納位置の数よりずっと多いので必ず起こると考え、起きたときの逃がし方を設計に組み込む。探索が遅くなる原因にもなる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
大量のデータから1件を取り出すのに、先頭から順に見ると件数に比例して遅くなる。キーを計算式で位置に変換すれば1回の計算で当たり、件数が増えても速さがほとんど落ちない。ただし数え切れないほどあるキーを有限の位置へ写す以上、同じ位置に重なる組は必ず出る。ハッシュ表の速さは、この重なりをどう捌くかで決まる。
具体例
学籍番号を7で割った余り(番号 mod 7)で7つの箱に振り分けると、12番(12÷7の余りは5)と19番(19÷7の余りは5)はどちらも箱5に入りシノニムになる。捌き方は2通りで、空いている別の箱へずらして入れるオープンアドレス法か、箱5から連結リストを伸ばして両方をつなぐチェイン法である。
試験での引っ掛け
「良いハッシュ関数を選べば衝突は起きない」は誤り。入れ物より物が多ければどこかで必ず重なるという考え(鳩の巣原理)により、格納位置より多くのキーがあれば必ずぶつかる。関数に求められるのは衝突をなくすことではなく、位置を偏りなく散らして発生を減らすこと。同じキーが重複することを指す語でもない。
関連用語
出た過去問
出典:平成30年度 春期 基本情報技術者試験 午前 問7(IPA)解説で登場
表探索におけるハッシュ法の特徴はどれか。
正解:キーの関数値によって格納場所を決める。
要点:ハッシュ法はキーの関数値で格納位置を決め、衝突対策が要る
ハッシュ法は、キーにハッシュ関数を適用して得た値から格納位置を直接決める方式である。キーを比較しながら探すのではなく計算で位置が求まるため、理想的にはデータ件数によらず一定時間で探索できる。ただし異なるキーが同じ位置に割り当てられる衝突(シノニム)は起こり得るので、チェイン法やオープンアドレス法などの対策が必要になる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。