我有一個結構:Ç - 散列結構與unsigned int類型的屬性氮量
struct A
{
unsigned int a, b, c, d, ...
}
我想打一個函數:
unsigned int A_hash(const A* const var)
{
return ...
}
數退回需求是非常非常大如果A_hash(var) < myHashTable.capacity
,HashTable插入的模數將無法正常工作。
我看到了這樣的問題,像以前一樣「散列函數,它在兩個整數」,「散列函數需要五個整數」等但對於n
整數?我正在尋找一個更通用的算法體面的哈希。它不需要是企業級的。
我在想或許還有一個龐大的數字開始像
return (0x7FFFFFFFF & a) + (0x7FFFFFFFF & b) + ...
,但我不認爲這將是足夠好。我也不知道如何阻止溢出的A_hash
函數,但這可能是另一個問題。
對待你的結構作爲一個連續的數組字節和使用Adler-32或其他滾動校驗和 – bruceg