作者maxi326 (新年是又冷又无聊)
看板Programming
标题Re: [问题] 产生符合常态分布的乱数
时间Wed May 20 12:37:38 2009
※ 引述《Peruheru (还在想)》之铭言:
: ※ 引述《maxi326 (新年是又冷又无聊)》之铭言:
: : 没有错的话,一般乱数产生出来会符合平均分布
: : 如果要产生出来的乱数符合常态分布,要怎样产生?
: : 例如产生一百万个乱数後,他们要符合常态分布
: Private Sub Command1_Click()
: Dim iv, ix, ir As Double
: Dim PI As Double
: PI = 3.141596
: 'f(x)= (1/(2*3.1415)^(1/2)) * e ^ (-(x^2)/2) 高斯公式
: With Me 'textbox1代表x值
: iv = ((Val(.Text1.Text) ^ 2) / 2) * (-1) '此为计算(-(x^2)/2)的值
: ir = Exp(iv) '计算e ^ (-(x^2)/2)
: ix = 1 / Round((2 * PI) ^ (1 / 2), 2) '计算(1/(2*3.1415)^(1/2)) 的值
: .Text2.Text = CStr(ix * ir) 'textbox2代表y=f(x)值
: End With
: End Sub
应该不能用,因为算出来的是pdf(x)
而我现在要算的应该是cdf(x)的反函数
今天有空看了一下,积分太久没有用已经解不出来了
http://upload.wikimedia.org/math/0/d/6/0d6d29564649c2b89454b26db0fa4e06.png
有没有好心人帮解一下
有人提到box-muller,但我想用反函数
等我找到微积分书再解看看好了
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.52.124