作者meto000 (陽貨欲見孔子)
看板Visual_Basic
標題Re:[VB6 ] 亂數真的夠亂嗎?
時間Thu Jun 25 23:11:25 2009
這個問題轉去統計版後
有大大解答了
所以轉回來給大家參考一下
請看後面的推文
基本上就是說
我那樣的精確度其實是合理的
是我想太多了
※ [本文轉錄自 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
1F:→ yhliu:Var(Xbar) = Var(X)/n = (1/12)/65535 = 0.000001272 06/25 00:37
2F:→ yhliu:sd(Xbar) = 0.00113. 就 "平均數" 結果來看沒有問題. 06/25 00:38
3F:→ yhliu:不過, "是否夠亂" 有許多需要 test 的. 06/25 00:39
4F:→ yhliu:另, 在你的 VB 程式中, 計算的捨入誤差當 n 大時可能重要. 06/25 00:44
5F:→ meto000:感謝回答,我也想過是不是四捨五入的問題,但倍精度有15位 06/25 00:45
6F:→ yhliu:以 X 的累加來說,因小數點對準,後面累加的數字會損失精確度. 06/25 00:46
7F:→ meto000:小數,而平均從80萬之後就已經收斂在0.5001xx了,好怪 06/25 00:46
8F:→ yhliu:而 X^2 的累加精確度損失更嚴重. 06/25 00:48
9F:→ yhliu:VB 結果 mean 幾乎都在 0.5 之上可能與 VB 計算特性有關, 但 06/25 00:50
10F:→ yhliu:因我沒學過 VB, 因此不知其故. 06/25 00:50
11F:→ yhliu:哦...你的 VB 計算是累計的, 難怪 mean 幾乎都在 0.5 之上. 06/25 00:52
12F:→ meto000:感謝,所以我們無法期望由大量取樣而能收斂到小數點很多位 06/25 00:53
13F:→ meto000:由SD(Xbar)來看頂多兩三位而已, 是不是這樣呢? 06/25 00:54
14F:→ yhliu:n=10000000, Var(Xbar)=0.8333E-8, SD(Xbar)=0.0000913 06/25 00:54
15F:→ meto000:所以我取樣1000萬次,就只能有四位的精準度, 是這樣嗎? 06/25 00:55
16F:→ yhliu:Xbar=0.500137 在合理範圍 (0.5(+/-)2*SD) 06/25 00:56
17F:→ yhliu:是的, MonteCarlo 計算並不能取得 "很精確" 的結果, 但可以 06/25 00:57
18F:→ yhliu:"快速" 取得 "尚可" 的結果. 特別適合多變量計算如 R^k 之區 06/25 00:59
19F:→ yhliu:域上的定積分. 06/25 00:59
20F:→ meto000:感謝指教,多變量定積分的模擬我也有作過,只是對精確度有點 06/25 01:03
21F:→ meto000:疑惑,原來不是拿時間跟他拼就能提升多少的,頂多只有 06/25 01:03
22F:→ meto000:mean±2sd範圍內的精確度而已,我還以為VB的亂數歪掉了說 06/25 01:04
23F:→ yhliu:要得精確積分值還是數值積分較實在. 但數值積分當 dimension 06/25 01:06
24F:→ yhliu:提高時所需時間很恐怖! 如一維定積分需分 n 段, k維要分 n^k 06/25 01:08
25F:→ yhliu:個區塊, 而誤差仍不及一維時. 但 MonteCarlo 方法則與維度 06/25 01:09
26F:→ yhliu:相關不大. 換言之,一維積分需取 n 點, k維取個 k*n 可能嫌多 06/25 01:11
27F:→ meto000:了解,montecarlo只是提供難纏問題的另一種思考方向而已 06/25 01:17
28F:→ clickhere:可以好慮Variance reduction的方法可多個2-3位精準度 06/25 09:01
29F:→ clickhere: 考 06/25 09:02
30F:→ meto000:可以麻煩clickhere大大介紹一下作法嗎? 06/25 23:10
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.238.200
※ 編輯: meto000 來自: 218.173.238.200 (06/25 23:16)