Re: [問題] 產生超過32767的亂數

看板C_and_CPP (C/C++)作者 (sjgau)時間14年前 (2012/05/21 12:40), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串4/4 (看更多)
比較好的亂數 一 產生的範圍 越大越好 二 盡可能的均勻分配 三 產生的速度越快越好 四 在產生相同的亂數之前, 要出現過 每一個個亂數。 即,週期是固定的 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

05/21 13:17, , 1F
四怪怪的,你丟骰子6次難道就一定1~6各出現一次?
05/21 13:17, 1F

05/21 13:17, , 2F
如果要滿足四你就直接random_shuffle就好
05/21 13:17, 2F

05/21 13:19, , 3F
你給亂數給越多限制那他就越不是"亂數"
05/21 13:19, 3F

05/21 13:35, , 4F
亂數只要滿足不可預測就行了
05/21 13:35, 4F

05/21 13:37, , 5F
恩...一般使用上還是要有值域範圍
05/21 13:37, 5F

05/21 13:57, , 6F
4.指的是seed 實際上要用還是要對seed處理
05/21 13:57, 6F

05/21 13:59, , 7F
這些亂數產生器都得依靠state,state一重複就會loop
05/21 13:59, 7F

05/21 14:00, , 8F
所以演算法要讓state的種類越多越好
05/21 14:00, 8F
文章代碼(AID): #1FkSTKfv (C_and_CPP)
文章代碼(AID): #1FkSTKfv (C_and_CPP)