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