2011-11-22 124 views
6

我最近被給了一個家庭作業,詢問是否給出了一個鍵列表,這將有可能使一個沒有任何碰撞的哈希函數。做了一些研究,我發現給定一個預定義的密鑰列表,完美的哈希函數是可能的。完美的哈希函數

但是,我不太清楚除此之外該說些什麼。任何人都可以給我一些關於如何完善散列函數的建議,或者給出一個預定義列表對於散列函數的創建者有什麼作用,它允許一個完美的函數?

感謝您的任何幫助。

回答

8

沒有衝突的唯一方法是在密鑰和哈希值之間具有1對1的關係。散列值的範圍必須至少與鍵的數量一樣大,映射函數必須將每個鍵轉換爲唯一值。更多信息在這裏:http://en.wikipedia.org/wiki/Perfect_hash