基本情報暗記無料で始める

ハッシュ関数とは?はっしゅかんすう

ハッシュ関数とは、任意の入力値から一定の長さの値(ハッシュ値)を計算する関数で、同じ入力からは必ず同じ値が得られ、異なる入力はできるだけ均等に散らばることが求められる。探索用のハッシュ法では、キーから格納位置を直接計算することで、比較を繰り返さず1回の計算で目的のデータへたどり着ける。剰余(mod)を使う方式が代表的である。

最終更新:2026-10-09

試験情報

基本情報技術者試験の過去問では4回出題され、ほかに5問の解説で触れられています(2016年度〜2025年度)。

基本情報技術者試験の頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

配列を先頭から順に見る線形探索はデータが増えるほど比較回数が増え、2分探索でも並べ替えを保つ手間がかかる。「どこにあるか探す」のではなく「どこに置くかを値から計算で決める」と発想を変えれば、データ件数が増えても取り出しの手間が変わらない。この計算役がハッシュ関数である。基本情報では与えられた式で格納位置を求める計算問題と、値が衝突したときの処理方法の両方が問われる。

具体例

配列サイズを13として「キーを13で割った余り」を位置とすると、キー100は余り9なので位置9に格納される。PythonのdictやJavaのHashMapはこの仕組みで動いており、キーを指定した取り出しが件数によらず速い。配列サイズには2の累乗より素数を選ぶほうが偏りにくい。

試験での引っ掛け

ハッシュ値から元のキーを復元できないのは事実だが、探索用ハッシュに求められるのは一方向性ではなく速さと均等な分散である。パスワード保存に使う暗号学的ハッシュとは目的が違う点を混同しない。また異なるキーが同じ位置になる衝突(シノニム)は原理的に避けられず、チェイン法やオープンアドレス法で対処する。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では4回出題(2016年度〜2025年度)
  • 分野:テクノロジ系
  • ハッシュ値から元のキーを復元できないのは事実だが、探索用ハッシュに求められるのは一方向性ではなく速さと均等な分散である。