2016-08-23 97 views
0

返回哈希可以返回相同的指數不同的ID值的函數:雙射哈希函數

hash(id) = id%ARRAY_SIZE 

有沒有辦法有哈希函數是雙射。我想到:

hash(id) = id 

但我沒有連續的id值。有人有更好的解決方案嗎?

回答

1

散列函數是可用於將任意大小的數據映射到固定大小的數據的任何函數。

Hash function on Wikipedia

因此,通過定義,散列函數不能雙射的,因爲其結構域是無限的,而其範圍是有限的。

+1

儘管如此,對於任何固定的有限輸入集合,確實存在一個完美的散列。 –