我想生成具有均值爲零和方差爲2.25的高斯分佈的離散隨機數(對於1000集合)。我在書中看到NUMERICAL RECIPES in Fortran 90,第7章第7.2節中使用的功能gasdev
,但我不知道如何使用這個功能。fortran90中的離散高斯模型90
我該如何使用合奏的數量以及均值和方差?
謝謝
我想生成具有均值爲零和方差爲2.25的高斯分佈的離散隨機數(對於1000集合)。我在書中看到NUMERICAL RECIPES in Fortran 90,第7章第7.2節中使用的功能gasdev
,但我不知道如何使用這個功能。fortran90中的離散高斯模型90
我該如何使用合奏的數量以及均值和方差?
謝謝
國際海事組織,如何使用NR的功能最好寫在NR本身。
如果你需要生成正態分佈的實數,谷歌的「盒子穆勒變換」,或直接到Wiki page和/或幾十個問題和答案在這裏SO。
如果你的要求是產生整數(做你的意思是通過詢問離散的隨機數?),我想說的最簡單的方法is to compute the cdf。
gasdev
返回正態分佈與0.0
均值和方差1.0
隨機變量,常寫爲N(0, 1)
。您應該用方差對結果進行縮放以匹配所需的分佈。請注意,如果x
是N(0, 1)
(由gasdev
返回),則y = a + b*x
是N(a, b^2)
,即正態分佈隨機變量,其平均值爲a
且方差爲b^2
。
(順便說一句,如果這是一個家庭作業,應該適當地標記爲這樣)
順便說一下,這不是功課。我是生物學的博士生,我需要這個來建模細胞羣。對於1000合奏,我想知道把這個數字放在gasdev函數的什麼位置? – user1272138 2012-07-09 01:04:43
gasdev函數中的idum是什麼? – user1272138 2012-07-09 13:51:29
這是'gasdev'使用的僞隨機數生成器的種子。你應該在第一次調用'gasdev'時傳遞一些負值,然後再傳遞'0'。 – 2012-07-09 15:24:12
欲產生離散的隨機數(1000合奏)爲高斯分佈的均值爲零,方差2.25。我怎樣才能做到這一點? – user1272138 2012-07-08 21:45:07