[問題] 高斯分佈的亂數

看板Fortran作者 (Dr. Stein..............)時間14年前 (2010/03/31 13:06), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/2 (看更多)
目前在寫一個程式需要用到高斯分佈的亂數,變異數為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 請教各位大大啦~ --

03/05 01:32,
天佑淫河系
03/05 01:32

03/05 01:32,
銀....幹妳媽淫蕩新注音= =
03/05 01:32

03/05 01:33,
我關閉學習功能了 打開她常常害我玩網路遊戲當雞-.-
03/05 01:33

03/05 01:34,
沒人相信我 人緣這麼插阿= =
03/05 01:34

03/05 01:36,
越描越黑是怎樣啦( ‵□′)───C<─___-)|||
03/05 01:36
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 198.166.28.178

03/31 19:39, , 1F
認為超過1有問題 代表你要去複習變異數的定義
03/31 19:39, 1F

03/31 22:16, , 2F
俺是統計遜咖orz 樓上是指變異數只會包含95%的區間嗎
03/31 22:16, 2F

03/31 22:17, , 3F
也就是第二個轉換式才是對的?
03/31 22:17, 3F

03/31 22:20, , 4F
不過第二個轉換式只有正值會超過1…很怪= =
03/31 22:20, 4F

04/02 22:15, , 5F
第一個是它的p.d.f,而不能直接當作變數變換的式子
04/02 22:15, 5F
文章代碼(AID): #1BijX2VJ (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1BijX2VJ (Fortran)