[問題] 亂數測試問題
看板Prob_Solve (計算數學 Problem Solving)作者tropical72 (藍影)時間13年前 (2011/03/18 17:46)推噓0(0推 0噓 7→)留言7則, 2人參與討論串1/2 (看更多)
os: xp, compiler: vc2008
小弟為測亂數品質(均勻度),使用以下方式記錄亂數出現數字
unsigned char* occ_times = (unsigned char*)malloc(RAND_MAX+1);
memset(occ_times, 0, RAND_MAX+1);
srand((unsigned)time(NULL));
for(i=0; i!=RAND_MAX+1; ++i) ++occ_times[rand()];
不過測出來效果似乎不好, 因去看結果時
unsigned not_cnt_one=0;
for(i=0; i!=RAND_MAX+1); ++i){
if(occ_times[i]!=1) ++not_cnt_one;
}
RAND_MAX = 32767, 出來的 not_cnt_one 高達 20000,
幾乎為 2/3, 而另一測試是測 "多久會開始重覆數字",
理想為 RAND_MAX ,但實際上卻只有 100~400 次不等。
我想內建的 rand() 品質應沒這麼不好吧 ?
故想請教各位有經驗之先進,是否我的測試出了什麼問題?
謝謝各位先進不吝指教
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.72.67
※ tropical72:轉錄至看板 C_and_CPP 03/18 17:46
※ 編輯: tropical72 來自: 180.177.72.67 (03/18 17:48)
→
03/18 18:11, , 1F
03/18 18:11, 1F
→
03/18 18:12, , 2F
03/18 18:12, 2F
→
03/18 18:13, , 3F
03/18 18:13, 3F
→
03/18 18:13, , 4F
03/18 18:13, 4F
→
03/18 18:18, , 5F
03/18 18:18, 5F
→
03/18 18:19, , 6F
03/18 18:19, 6F
→
03/18 18:46, , 7F
03/18 18:46, 7F
討論串 (同標題文章)
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章