[問題] rand()

看板C_and_CPP (C/C++)作者 (皓月)時間14年前 (2012/05/29 03:42), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
不好意思 小弟有點緊急 如果格式不對或不該PO在這個版 小弟我會馬上刪除 ------------------------------------------------ 最近需要取均勻整數亂數在約[0, 150,000,000] 之間 約需取 15,000,000 次 產生有兩個問題 (1) 我知道 rand()%150,000,000 可能不夠亂 可是想稍微知道這樣做的缺點可能有哪些 (ex:週期不夠長之類的) (2) 後來用了 <trl/random> 中的uniform_real 使用的code如下: typedef std::tr1::mt19937 ENG; // Mersenne Twister typedef std::tr1::uniform_real<double> DIST; // Uniform Distribution typedef std::tr1::variate_generator<ENG,DIST> GEN; // Variate generator ENG eng; DIST dist(0,1); GEN gen(eng,dist); for (int i=0;i<size;++i) { int index = gen()*150000000; // use index .... } 我想問這樣會不會因為精確度不夠造成某些整樹永遠取不到或不夠均勻之類的結果 感謝各位大大了!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.66.3 ※ 編輯: cckk3333 來自: 118.166.66.3 (05/29 03:42)

05/29 04:27, , 1F
有考慮過 tr1::uniform_int 嗎?
05/29 04:27, 1F

05/29 05:00, , 2F

05/29 12:05, , 3F
感謝!
05/29 12:05, 3F
文章代碼(AID): #1FmzKGnb (C_and_CPP)
文章代碼(AID): #1FmzKGnb (C_and_CPP)