作者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)