作者MichaelKiske (Dr. Stein..............)
看板Fortran
标题[问题] 高斯分布的乱数
时间Wed Mar 31 13:06:06 2010
目前在写一个程式需要用到高斯分布的乱数,变异数为1,平均值为0。
google了一下发现有各种算式但是怎麽弄都不对= =
假设我的程式如下,g=那行到底要用啥算式来做转换哩…
real x, g
call RANDOM_SEED()
do i=1, 100
call RANDOM_NUMBER(x)
g =
end do
我google到发现有两种,一种是
g = sqrt(1/(2*3.14159))*exp(-(x**2)/2)
但是生不出负值…
另一种是
g = sqrt(-2*log(x))*cos(x*3.14159)
但这行产出来的值又超过正负1的范围orz
请教各位大大啦~
--
1F:→ victoryss:天佑淫河系 03/05 01:32
2F:→ victoryss: 银....干你妈淫荡新注音= = 03/05 01:32
3F:→ victoryss:我关闭学习功能了 打开她常常害我玩网路游戏当鸡-.- 03/05 01:33
4F:→ victoryss:没人相信我 人缘这麽插阿= =03/05 01:34
5F:推 victoryss:越描越黑是怎样啦( ‵□′)───C<─___-)||| 03/05 01:36
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 198.166.28.178
6F:推 latinboy: 认为超过1有问题 代表你要去复习变异数的定义 03/31 19:39
7F:→ MichaelKiske:俺是统计逊咖orz 楼上是指变异数只会包含95%的区间吗 03/31 22:16
8F:→ MichaelKiske:也就是第二个转换式才是对的? 03/31 22:17
9F:→ MichaelKiske:不过第二个转换式只有正值会超过1…很怪= = 03/31 22:20
10F:→ mantour:第一个是它的p.d.f,而不能直接当作变数变换的式子 04/02 22:15