我使用下面的散列函數散列函數是否應該返回散列的數值或該值%numBuckets?
function hash_djb2($str){
$hash = 5381;
$length = strlen($str);
for($i = 0; $i < $length; $i++) {
$hash = (($hash << 5) + $hash) + ord(strtolower($str[$i])) - 96;
}
return $hash;
}
我應該回到$hash
或$hash % $numBuckets
其中$numBuckets
是哈希表中桶的數量?
前者將返回真正大的數,使哈希衝突是不可能的,而後者只返回0和-1 $numBuckets
之間的值,但使哈希衝突可能
什麼是'$ numBuckets'? – 2013-02-20 07:14:41
哈希表中桶的數量 – user784637 2013-02-20 07:15:24
基於[c版本](http://stackoverflow.com/questions/2571683/djb2-hash-function)我會說'$哈希' – complex857 2013-02-20 07:17:00