推 EdisonX:這種方式也有缺點,像是 1111/2222/..../xxxx 不可能產生 05/14 21:22
會嗎??
還是我表達的意思有誤?
假設是塞入10個bit,產生rand%2,然後
a[0] a[1] a[2] a[3] a[4] a[5]
rand%2 rand%2 rand%2 rand%2 rand%2 rand%2
1111如果用2進位的bit來表示,就是10001010111
還是有機會產生吧?
如果是
a[0] a[1] a[2] a[3] a[4]
rand%10 rand%10 rand%10 rand%10 rand%10
1111或2222也可能會產生呀???
請問不可能產生的問題是出在哪??
※ 編輯: flydragon198 來自: 114.47.135.183 (05/14 21:31)
推 EdisonX:回到lcm prng本質,若array size 大,會產生出n個相同之數值 05/14 21:34
→ EdisonX:代表該 prng 應還不夠符合 min std prng. 05/14 21:35
→ EdisonX:不過若只是拿來做簡單統計用的話,也不需在太意這問題. 05/14 21:36
恩恩,了解,多學了一課~~
像這些比較深入的問題,平常不會注意到~~
※ 編輯: flydragon198 來自: 114.47.135.183 (05/14 21:39)
→ EdisonX:<目前rand()都是 LCG 法,所以品質有限,拿來做簡易統計可> 05/14 21:38
剛剛又突然想到,rand不會產生相同的數值,還是可以產生1111呀
例如產生 5 7 9 11
5%2 7%2 9%2 11%2
結果就是1111,並不是rand產生四次同樣數值得到1111
要產生0也是一樣
產生 100 200 500 1000
100%2 200%2 500%2 1000%2
結果就是0
※ 編輯: flydragon198 來自: 114.47.135.183 (05/14 21:55)
→ EdisonX:耶..我要說的是,如果能夠連續有n個相同規律的話,它的均勻 05/14 21:59
→ EdisonX:性(原始的rand())應是不夠的.. 05/14 22:01
→ flydragon198:喔喔,了解,是我誤會了~~~ 05/14 22:04
推 AstralBrain:丟骰子也有可能連出10個6啊 為什麼會說均勻性不夠 05/14 22:06
→ AstralBrain:如果"一定不會"才有問題吧 05/14 22:06
→ EdisonX:疑!! A 大說得有理 !! 05/14 22:08