不同浏览器的随机数

时间:2013-07-05 07:53:32

标签: javascript random cross-browser

我想为每个访问者分配一个随机数,以便启用A / B测试等内容。我也想在客户端生成号码 - 而不是服务器。因为它应该很快我想使用Math.random()

我现在的问题如下:我是否会随机分配数字,或者不同的实现会使数字出现偏差?

干杯 的Valentin

2 个答案:

答案 0 :(得分:0)

通常,客户端的'Math.random()'的实现应该足以用于随机分发以及生成它们的服务器。但你无法确定。

答案 1 :(得分:0)

您可以使用以下javascript来测试javascript的Math.random的有效随机分布:

var totalAbove  =0;
var totalBelow = 0
for(var i=0;i<10000;i++){
    var randomNumber = Math.ceil(Math.random()*1000)
    if(randomNumber > 500){
        totalAbove++
    }else{
        totalBelow++
    }
}

var belowSplit = (totalBelow / 10000) * 100
var aboveSplit = (totalAbove / 10000 ) * 100
alert("Above 500: " + totalAbove + "\n" + "Below 500: " + totalBelow + "\n split: " + belowSplit + "/" + aboveSplit);

或使用此jsfiddle:http://jsfiddle.net/VN3Bd/

您可以在不同的浏览器中尝试查看它是否有不同的行为,但我认为您会看到分布非常均匀。

我认为你可以依靠Math.random来完成这项工作。

相关问题