gpt4 book ai didi

javascript - 从字符串生成 0 到 1 之间的确定性哈希数

转载 作者:行者123 更新时间:2023-12-02 20:49:54 24 4
gpt4 key购买 nike

我正在寻找一种在 JavaScript 中“散列”字符串的方法,以便

  • 结果是确定性的(使用相同的输入字符串会产生相同的结果)
  • 结果是 0 到 1 之间的十进制数
  • 结果(某种程度上)均匀分布在 0 到 1 的空间中。

例如:

decimalHash('hallo world') = 0.145     // some made up number
decimalHash('how are you?') = 0.345 // some made up number
decimalHash('fine, thanks!') = 0.945 // some made up number

我已经搜索过这样的方法,但是到目前为止我发现的所有哈希函数都有不同的特征。任何帮助将不胜感激!

最佳答案

您可以通过使用每个 Angular 色的值和一个因子来构建自己的值,并将该值相加。最后只取小数部分。

这种方法可能会产生冲突。

const decimalHash = string => {
let sum = 0;
for (let i = 0; i < string.length; i++)
sum += (i + 1) * string.codePointAt(i) / (1 << 8)
return sum % 1;
}

console.log(decimalHash('a'));
console.log(decimalHash('aa'));
console.log(decimalHash('hallo world'));
console.log(decimalHash('how are you?'));
console.log(decimalHash('fine, thanks!'));

关于javascript - 从字符串生成 0 到 1 之间的确定性哈希数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634063/

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