2012-02-21 41 views
0

ここにアルゴリズムの説明があります。C言語の文字列のFNVハッシュ

hash = FNV_offset_basis 
for each octet_of_data to be hashed 
    hash = hash * FNV_prime 
    hash = hash XOR octet_of_data 
return hash 

が、私は文字列のセットを持っているならば、どのような私は、FNV_offset_basisとして取る

とハッシュ化されるデータの各オクテットのための意味は何であるものとします。

また、テーブルのサイズはどのようにする必要があります、たとえば、N個の文字列がハッシュされます。

文字列の変更を手伝ってください。

ありがとうございました。上記のコメントで参照したウェブサイトから

+1

FNV_offset_basisは、http://www.isthe.com/chongo/tech/comp/fnv/の「chongo /\ ../ \」のFNV-0ハッシュです。 index.html – porges

+0

@Porgesは意味がありません。 – Kraken

答えて

1

32 bit offset_basis = 2166136261 

64 bit offset_basis = 14695981039346656037 

あなたのハッシュの幅に対応するものを使用します。

オクテットは8ビットのバイトです。 8ビット文字のテキストを使用している場合、オクテットと文字は同じものです。

テーブルのサイズはあなた次第です。もちろんNよりも大きくしてください!大きくなるほど、予想される衝突が少なくなります。

関連する問題