作者sjgau (sjgau)
看板C_and_CPP
標題Re: [問題] 產生超過32767的亂數
時間Mon May 21 12:40:49 2012
比較好的亂數
一 產生的範圍 越大越好
二 盡可能的均勻分配
三 產生的速度越快越好
四 在產生相同的亂數之前,
要出現過 每一個個亂數。
即,週期是固定的
r(n)= (r(n-1)*a + b) mod c
a= 69069
b= 1
c= 2^32
比較接近理想
請參考 這裡
http://en.wikipedia.org/wiki/Linear_congruential_generator
--
e-mail: sjgau4311@gmail.com
我的課程介紹網頁:
http://www.csie.ntu.edu.tw/train/teacher_display.php?num=18
AutoCAD 台灣地區菁英講師獲選
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.224.204
→ blackwindy:四怪怪的,你丟骰子6次難道就一定1~6各出現一次? 05/21 13:17
→ blackwindy:如果要滿足四你就直接random_shuffle就好 05/21 13:17
→ blackwindy:你給亂數給越多限制那他就越不是"亂數" 05/21 13:19
→ leiyan:亂數只要滿足不可預測就行了 05/21 13:35
→ blackwindy:恩...一般使用上還是要有值域範圍 05/21 13:37
→ azureblaze:4.指的是seed 實際上要用還是要對seed處理 05/21 13:57
→ azureblaze:這些亂數產生器都得依靠state,state一重複就會loop 05/21 13:59
→ azureblaze:所以演算法要讓state的種類越多越好 05/21 14:00