gpt4 book ai didi

Javascript 哈希短字符串的异常行为

转载 作者:行者123 更新时间:2023-12-03 04:15:18 25 4
gpt4 key购买 nike

我尝试在 Javascript 中创建一个哈希函数,我注意到它的一个版本对于两个字母的字符串有奇怪的行为。

    function hash(seed) {
var genseed = 0;
for(i=0;i<seed.length;++i) {
genseed += seed.charCodeAt(i)**((seed.length-1)-i);
}
console.log(genseed)
}

当您对两个字母的字符串(如 hash("AB") 和 hash("AX"))调用 hash 时,您会得到完全相同的结果。是的,我知道哈希冲突,但这里似乎只要第一个字母相同,第二个字母就不会改变,所以它只是被忽略了吗?究竟为什么会发生这种情况?

最佳答案

((seed.length-1)-i)length 时为 0是 1i=1 ,或者更确切地说:每次到达最后一个字符时。我建议删除 -1 ,否则您将忽略最后一个字符。

function hash(seed) {
var genseed = 0;
for (i = 0; i < seed.length; ++i) {
genseed += seed.charCodeAt(i) ** ((seed.length) - i);
}
console.log(genseed)
}

hash("AB");
hash("AX");

关于Javascript 哈希短字符串的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167863/

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