我正在使用以下哈希函数
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 和$numBuckets
-1 之间的值但使哈希冲突成为可能