繁体   English   中英

javascript中来自crypto.randomBytes()的浮点数

[英]floating point number from crypto.randomBytes() in javascript

如何将从crypto.randomBytes返回的字节数组转换为浮点数? 我正在为Math.random写一个小替代品()

假设你有一系列随机选择的字节,均匀分布在[0,256]之上。 取七个字节,比如0 ,a 1 ,... a 6 计算(((((((( 6 %32)/ 32 + a 5 )/ 256 + a 4 )/ 256 + a 3 )/ 256 + a 2 )/ 256 + a 1 )/ 256 + a 0 )/ 256。

说明: 6 %32表示6模32的残差。这需要5位6 然后除以32将这些位“移位”到小数点的右侧,添加8个新位,除以256“移位”右8位,依此类推,直到我们有53位。

这在[0,1]中提供了2 53个可能的结果。 有可能提供更多,因为浮点分辨率越精细,因为值接近于零,但是存在均匀性和其他问题的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM