2011-06-27 102 views
1

我對選擇正確的哈希大小有點困惑。舉例來說,如果我想散列2^32值,可以使用32位散列大小嗎?會引起更多的碰撞嗎?我讀過關於平方根規則的地方..這是否意味着我應該選擇64位散列大小?但這並不意味着存儲散列表所需的空間將用於存儲2^64的值。 這是混淆我的部分。根據定義散列會減少關鍵空間,但如果我在臃腫的2^64值空間中存儲2^32值...聽起來不對。我正在增加密鑰空間。我想我誤解了一些東西......任何幫助澄清這一點將不勝感激。關於計算正確的哈希大小的混淆

謝謝!

回答

1

Wikipedia最好說它:

散列函數是映射大型數據集可變長度,稱爲鍵,以更小的數據集的固定長度任何算法或子程序。

這聽起來不像是你想要做的。這聽起來像是在試圖將32位密鑰映射到32位值。散列函數有許多可能的用途。你所描述的似乎不是一個散列函數的理想用例。