gpt4 book ai didi

javascript - Math.random() 如何在 javascript 中工作?

转载 作者:可可西里 更新时间:2023-11-01 01:16:25 24 4
gpt4 key购买 nike

我最近想通了如何通过谷歌获取随机数,这让我开始思考 Math.random() 是如何工作的。所以我在这里我无法弄清楚他们是如何做 Math.random() 的,除非他们使用了像这样的时间有人知道 JavaScript 的 Math.random() 是如何工作的吗?

最佳答案

Math.random() 返回一个带正号的数值,大于或等于 0 但小于 1,使用依赖于实现的算法或策略随机选择或伪随机选择,在该范围内近似均匀分布。

这是 V8 的实现:

uint32_t V8::Random() {

// Random number generator using George Marsaglia's MWC algorithm.
static uint32_t hi = 0;
static uint32_t lo = 0;

// Initialize seed using the system random(). If one of the seeds
// should ever become zero again, or if random() returns zero, we
// avoid getting stuck with zero bits in hi or lo by reinitializing
// them on demand.
if (hi == 0) hi = random();
if (lo == 0) lo = random();

// Mix the bits.
hi = 36969 * (hi & 0xFFFF) + (hi >> 16);
lo = 18273 * (lo & 0xFFFF) + (lo >> 16);
return (hi << 16) + (lo & 0xFFFF);
}

来源:http://dl.packetstormsecurity.net/papers/general/Google_Chrome_3.0_Beta_Math.random_vulnerability.pdf

以下是 StackOverflow 上的几个相关主题:

关于javascript - Math.random() 如何在 javascript 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109006/

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