Re:[VB6 ] 亂數真的夠亂嗎?

看板Visual_Basic作者 (陽貨欲見孔子)時間16年前 (2009/06/25 23:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
這個問題轉去統計版後 有大大解答了 所以轉回來給大家參考一下 請看後面的推文 基本上就是說 我那樣的精確度其實是合理的 是我想太多了 ※ [本文轉錄自 Statistics 看板] 作者: meto000 (陽貨欲見孔子) 看板: Statistics 標題: [VB6 ] 亂數真的夠亂嗎? 時間: Thu Jun 25 00:08:28 2009 這個問題原先是貼在 VB 版的 不過我想它跟統計應該有點關係 或許這邊的先進會有不同的看法也說不定 所以也貼來這邊請教一下 ps: 我用EXCEL驗證過它的RAND指令 每次計算一行65535個亂數的平均和12倍變方 五次的結果如下 0.499098904 0.999599624 0.499093231 0.997547013 0.501684552 1.003165544 0.496511423 0.995069681 0.500108072 0.998571983 看來EXCEL的亂數好像也只能收斂到兩位小數的樣子 ※ [本文轉錄自 Visual_Basic 看板] 作者: meto000 (陽貨欲見孔子) 看板: Visual_Basic 標題: [VB6] 亂數真的夠亂嗎? 時間: Thu Jun 25 00:01:45 2009 [原文恕刪,請看後面的推文討論...] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.18.156

06/25 00:37,
Var(Xbar) = Var(X)/n = (1/12)/65535 = 0.000001272
06/25 00:37

06/25 00:38,
sd(Xbar) = 0.00113. 就 "平均數" 結果來看沒有問題.
06/25 00:38

06/25 00:39,
不過, "是否夠亂" 有許多需要 test 的.
06/25 00:39

06/25 00:44,
另, 在你的 VB 程式中, 計算的捨入誤差當 n 大時可能重要.
06/25 00:44

06/25 00:45,
感謝回答,我也想過是不是四捨五入的問題,但倍精度有15位
06/25 00:45

06/25 00:46,
以 X 的累加來說,因小數點對準,後面累加的數字會損失精確度.
06/25 00:46

06/25 00:46,
小數,而平均從80萬之後就已經收斂在0.5001xx了,好怪
06/25 00:46

06/25 00:48,
而 X^2 的累加精確度損失更嚴重.
06/25 00:48

06/25 00:50,
VB 結果 mean 幾乎都在 0.5 之上可能與 VB 計算特性有關, 但
06/25 00:50

06/25 00:50,
因我沒學過 VB, 因此不知其故.
06/25 00:50

06/25 00:52,
哦...你的 VB 計算是累計的, 難怪 mean 幾乎都在 0.5 之上.
06/25 00:52

06/25 00:53,
感謝,所以我們無法期望由大量取樣而能收斂到小數點很多位
06/25 00:53

06/25 00:54,
由SD(Xbar)來看頂多兩三位而已, 是不是這樣呢?
06/25 00:54

06/25 00:54,
n=10000000, Var(Xbar)=0.8333E-8, SD(Xbar)=0.0000913
06/25 00:54

06/25 00:55,
所以我取樣1000萬次,就只能有四位的精準度, 是這樣嗎?
06/25 00:55

06/25 00:56,
Xbar=0.500137 在合理範圍 (0.5(+/-)2*SD)
06/25 00:56

06/25 00:57,
是的, MonteCarlo 計算並不能取得 "很精確" 的結果, 但可以
06/25 00:57

06/25 00:59,
"快速" 取得 "尚可" 的結果. 特別適合多變量計算如 R^k 之區
06/25 00:59

06/25 00:59,
域上的定積分.
06/25 00:59

06/25 01:03,
感謝指教,多變量定積分的模擬我也有作過,只是對精確度有點
06/25 01:03

06/25 01:03,
疑惑,原來不是拿時間跟他拼就能提升多少的,頂多只有
06/25 01:03

06/25 01:04,
mean±2sd範圍內的精確度而已,我還以為VB的亂數歪掉了說
06/25 01:04

06/25 01:06,
要得精確積分值還是數值積分較實在. 但數值積分當 dimension
06/25 01:06

06/25 01:08,
提高時所需時間很恐怖! 如一維定積分需分 n 段, k維要分 n^k
06/25 01:08

06/25 01:09,
個區塊, 而誤差仍不及一維時. 但 MonteCarlo 方法則與維度
06/25 01:09

06/25 01:11,
相關不大. 換言之,一維積分需取 n 點, k維取個 k*n 可能嫌多
06/25 01:11

06/25 01:17,
了解,montecarlo只是提供難纏問題的另一種思考方向而已
06/25 01:17

06/25 09:01,
可以好慮Variance reduction的方法可多個2-3位精準度
06/25 09:01

06/25 09:02,
06/25 09:02

06/25 23:10,
可以麻煩clickhere大大介紹一下作法嗎?
06/25 23:10
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.238.200 ※ 編輯: meto000 來自: 218.173.238.200 (06/25 23:16)
文章代碼(AID): #1AGvEUWw (Visual_Basic)
文章代碼(AID): #1AGvEUWw (Visual_Basic)