各位高手请帮忙,本人正在用VB编写一个程序,需要产生一组(大约10^6个)随机数据,要求产生后满足正态分布(且均值0,方差1),想了多种方法都未能实现,抢各位大侠帮忙,不胜感激!!!

解决方案 »

  1.   

    这篇?:
    就这个就可以了,不用改进法正态分布的随机数发生器 in C# 
    主要参考《Numerical Recipes in C++ 2/e》p.292~p.294 和《Simulation Modeling and Analysis 
    3/e》p.465~p.466。Box 和 Muller 在 1958 年给出了由均匀分布的随机变量生成正态分布的随机变量的算法。设 U1, U2 是区间 (0, 1) 上均匀分布的随机变量,且相互独立。令X1 = sqrt(-2*log(U1)) * cos(2*PI*U2);
    X2 = sqrt(-2*log(U1)) * sin(2*PI*U2);那么 X1, X2 服从 N(0,1) 分布,且相互独立。等于说我们用两个独立的 U(0,1) 随机数得到了两个独立的 N(0,1)随机数。