gpt4 book ai didi

javascript - 从十六进制哈希生成范围内的 float

转载 作者:行者123 更新时间:2023-11-30 11:21:17 27 4
gpt4 key购买 nike

如何从给定的长 HEX 哈希生成(在 JavaScript 或 Node.JS 中)0.00000000 - 100.00000000 范围内的 float ?例如 SHA-256?

我对使用 crypto 库的解决方案持开放态度,因为我使用它来生成给定的哈希 :)

最佳答案

如果您不担心精度损失,并且您的十六进制字符串具有固定长度(与 SHA-256 一样),您可以简单地从一个值空间映射到另一个值空间:

function hexStrToFraction(hexStr) {
// Expresses a hexadecimal string of N characters as a fraction
// of one above its maximum possible value (16^N).
// Returns a number between 0 and 1.
return parseInt(hexStr, 16) / Math.pow(16, hexStr.length);
}

function sha256ToPercent(sha256) {
return 100 * hexStrToFraction(sha256);
}

请注意,精度损失高到足以使大部分 SHA-256 冗余:

var a = 'b2339969703a8c4b49e4a5c99cca6013ed455f52d06f8f03adb927aee7d9c3c0'
var b = 'b2339969703a8c8b8504772b860b9ed2cb6aa0186ff6750981e7ccd5344e4bf1'
// ^ differences start here
hexStrToFraction(a) === hexStrToFraction(b) // evaluates true

关于javascript - 从十六进制哈希生成范围内的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49760120/

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