Re: [ js ] 隨機分配網頁
※ 引述《chenyutn (人生要死,何為苦心。)》之銘言:
: 我想讓使用者可以經由javascript分配到不同的兩個網頁上
: 所以參考了網路上的資料 寫成下面這段
: 隨機產生1-2的數字 得到數字1就到001網頁 得到數字2則到002網頁
: <script language="javascript">
: var fileurl;
: fileurl = "000" + parseInt((Math.random()*2+1));
: fileurl = fileurl.substring(fileurl.length-3,fileurl.length);
: top.frames["main"].location.href = fileurl + ".html";//frames:指定框架
: </script>
: 但因為我跟javascript不是很熟
: 不知道這樣的方式是不是能夠真的達到隨機分配?
: 或者會不會有什麼額外的問題?
首先謝謝你提供random的寫法 以前沒去想過js要怎麼寫random
我也不確定這樣寫是不是夠隨機 java裡會另外加time seed進去 讓它更隨機
我想說直接跑幾筆資料 看結果夠不夠隨機 亦即一半一半 50%、50%
分別跑了[100,1000,10000,100000,100000]筆資料
網頁重新整理幾次觀察 確實是夠隨機 沒有特別偏向某一邊
根據「中央極限定理」 樣本數愈大時 樣本分配會趨近於常態分配 故得證# XD
demo: http://noking.googlepages.com/random.html
隨意選擇一筆測資如下:
sampleNum: 0, sampleSize: 100
chanceOneCount: 50
chanceTwoCount: 50
sampleNum: 1, sampleSize: 1000
chanceOneCount: 509
chanceTwoCount: 491
sampleNum: 2, sampleSize: 10000
chanceOneCount: 4984
chanceTwoCount: 5016
sampleNum: 3, sampleSize: 100000
chanceOneCount: 49791
chanceTwoCount: 50209
sampleNum: 4, sampleSize: 100000
chanceOneCount: 49976
chanceTwoCount: 50024
code如下:
var randomNumber;
var chanceOneCount;
var chanceTwoCount;
var sample=[100,1000,10000,100000,100000];
for(var sampleNum=0; sampleNum < sample.length ; sampleNum++){
chanceOneCount=0;
chanceTwoCount=0;
for(var i=0 ; i< sample[sampleNum] ; i++){
randomNumber = parseInt(Math.random()*2+1);
if(randomNumber==1){
chanceOneCount++;
}
if(randomNumber==2){
chanceTwoCount++;
}
}
document.write("sampleNum: " +sampleNum + ", sampleSize: " +
sample[sampleNum] + "<br>");
document.write("chanceOneCount: " +chanceOneCount + "<br>");
document.write("chanceTwoCount: " +chanceTwoCount + "<br><br>");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.40.183
推
04/01 14:46, , 1F
04/01 14:46, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章