とハッシュ構造体Iが構造を持っている:C - unsigned int型のプロパティのN量
struct A
{
unsigned int a, b, c, d, ...
}
私は、関数を作りたい:
unsigned int A_hash(const A* const var)
{
return ...
}
数は、として非常に非常に大きくする必要があるが返さA_hash(var) < myHashTable.capacity
の場合、HashTable挿入のモジュラスは正しく機能しません。
私はn
整数についてなど「5つの整数で取るハッシュ関数」、「ハッシュ二つの整数を取り込み機能」、が、何のような前にこのような質問を見てきましたか?私はより一般的なアルゴリズムまともなハッシュを探しています。エンタープライズレベルである必要はありません。
私は多分
return (0x7FFFFFFFF & a) + (0x7FFFFFFFF & b) + ...
のような大規模な数字で始めることを考えていたが、私は、これは十分に良いだろうとは思いません。また、A_hash
関数がオーバーフローするのを止める方法もわかりませんが、それは別の問題である可能性があります。
structを連続した配列として扱います。 Adler-32などのローリングチェックサムを使用していました – bruceg