javascript - 如何在不使用 Math.random() 函数的情况下使用 JavaScript 创建随机数生成器函数?

标签 javascript random numbers

我想使用 JavaScript 创建一个随机数生成器函数,它将返回一个介于 0 和 1 之间的随机数。是否可以在不使用 Math.random() 的情况下创建自定义随机数生成器函数> 功能?

我试过这种方法。它有效,但我不知道它是真的随机还是有任何规律?

    var lastRand = 0.5;
    function rand(){
        var x = new Date().getTime()*Math.PI*lastRand;
        var randNum = x%1;
        lastRand = randNum;
        
        return randNum;
    }

    // Output
    for(var n = 0; n < 50; n++){
        console.log(rand());
    }

此函数依赖于变量lastRand 来生成数字。但我想要更有效的方法。

最佳答案

为什么不这样?这对我来说似乎更随机,因为它不依赖于值。

var lastRand, randNum;

function rand(){
    while(randNum == lastRand)
        randNum = (new Date().getTime()*Math.PI)%1;

    return lastRand = randNum;
}

// Output
for(var n = 0; n < 50; n++)
    console.log(rand());

关于javascript - 如何在不使用 Math.random() 函数的情况下使用 JavaScript 创建随机数生成器函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420500/

相关文章:

javascript - Backbone/underscore.js json 到带有每个循环的模板

javascript - context.sendActivity(CardFactory.oauthCard(...)) 看起来更简单,但不起作用

string - golang - 用数字替换字符串字符 golang

iphone - 我如何从 NSMutableArray 中随机抽取并且不使用相同的数字两次?

php: 只有数字哈希?

java - Java中如何比较字符和数字

javascript - 使用数组内容作为对象名称的引用

javascript - Bootstrap javascript wordpress 问题数据切换 ="collapse"

javascript - for 循环生成的二维 JavaScript 数组正在被最后一个循环结果覆盖

python - 有限浮点小数点而不对数字进行四舍五入