gpt4 book ai didi

javascript - 为什么要用%来计算hashCode索引转换?

转载 作者:行者123 更新时间:2023-11-28 17:53:20 26 4
gpt4 key购买 nike

假设我的哈希表的存储桶计数为 100。我的 key A 的哈希码为 500, key B 的哈希码为 600。对于 hashCode % this,它们都解析为 0 .bucketCount,这是不同哈希码的冲突。

我想知道为什么使用%来计算索引。有人可以解释一下这方面的数学原理吗?为什么该数学运算输出的索引是我应该插入节点的位置?

HashTable.prototype.hashFunction = function(key){
var hash = 0;
for (var i=0;i< key.length; i++){
console.log(key.charCodeAt(i))
hash += key.charCodeAt(i)
}
return hash;
};

HashTable.prototype.convertHashToIndex = function(hashCode) {
return hashCode % this.bucketCount;
};

最佳答案

因为有 bucketCount 个存储桶,所以使用除以存储桶数量的模数(或余数)来确保结果适合可用的存储桶。如果您没有取模,您将获得结果但无法存储它们。

关于javascript - 为什么要用%来计算hashCode索引转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com