作者littleshan (我要加入劍道社!)
看板ask-why
標題Re: [請益] 亂數表有沒有規律??
時間Wed May 20 23:48:58 2009
※ 引述《HuangJC (吹笛牧童)》之銘言:
[deleted]
: 當然,大部份時候,這樣設計程式都叫想太多
: 我們很簡單的把原始亂數除到變成 0~1 的浮點數再乘開就好了
: 沒有人會知道其實他天生中獎率就比別人低了
: 只怪他命不好 :P
: 不好意思,也有黑心程式 XD
我大概了解了你的意思
然而隨著 random number 的值域愈大
你所說的機率偏差也會隨之縮小
一般程式設計師並不會拿 0.0~0.9 僅有十種變化的 random variable
直接拿去乘 9.0 再做個 floor()
然後就說這是個 0~8 之間的 uniform random integer
若你的原始亂數是 0.000 ~ 0.999 有 1000 種可能
那麼經過運算後
出現 0 的機率僅比出現其它數字的機率大了 0.001
若你的原始亂數是小於 1.0 的 IEEE754 single-precision floating point
機率偏差為 2^-23
這個數字...八百萬分之一
說實話已經很小了 浮點運算誤差造成的影響還比較大
如果不滿意,你還可以改用 double
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.30.156
※ 編輯: littleshan 來自: 61.217.30.156 (05/20 23:55)
推 HuangJC:不只 R=0 那兒會重覆,事實上有可能出現週期性的重覆 05/21 00:47
→ HuangJC:比如要把原本三個值塞進兩個值裏,那麼兩個值中就有一個是 05/21 00:47
→ HuangJC:另一個的兩倍機率;然後週期性的畫成條紋圖了.. 05/21 00:48