A / Bテストなどを有効にするために、各訪問者に乱数を割り当てたいと思います。また、サーバーではなくクライアントで番号を生成したいと思います。そして、それは速いはずなので、 Math.random() を使用したいと思います
私の質問は次のとおりです。数値のランダムな分布を取得しますか、それともさまざまな実装によって数値が歪められますか?
乾杯バレンティン
A / Bテストなどを有効にするために、各訪問者に乱数を割り当てたいと思います。また、サーバーではなくクライアントで番号を生成したいと思います。そして、それは速いはずなので、 Math.random() を使用したいと思います
私の質問は次のとおりです。数値のランダムな分布を取得しますか、それともさまざまな実装によって数値が歪められますか?
乾杯バレンティン
次の 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 を頼りにできると思います。