ハッシュ関数: 長いデータに短いあだ名をつけよう
ハッシュ関数は、文字列やデータを、決まった計算で短い値に変える方法です。
長い名前に「あだ名」をつけるように、データを比べやすい形に変えます。ただし、違うデータが同じ値になることもあり、これを衝突と呼びます。
ルール
- 文字を1つずつ数字に変える
- それまでの結果に混ぜる
- 大きくなりすぎないように余りを使う
- 最後に出た値をハッシュ値にする
図で見る
コピペ用コード
def simple_hash(text):
result = 0
for character in text:
result = (result * 31 + ord(character)) % 10000
return result
print(simple_hash("code"))
print(simple_hash("recipe"))