在數位電腦上用數學方法產生的、統計意義下具有在區間(0,1)上均勻總體簡單子樣性質的數值序列{rnn=1,2,…;0≤rn≤1}。

  用蒙特卡羅法模擬求解一個實際問題,要用到各種不同分佈的隨機變數、隨機向量量和隨機過程η的抽樣序列{ηnn=1,2,…},稱它們為隨機數。如常用的二項分佈隨機數、均勻分佈隨機數、二維正態分佈隨機數等,其中最基本、最重要的是區間(0,1)上均勻分佈的隨機數。因此,如何在計算機上產生偽隨機數備受重視。

  在一臺b)進制(如二進制或十進制)、尾數字長為k位的計算機上,不考慮符號和階碼,可以表示bk個不同的數,即0,1,2,…,bk-1。在數學計算機上產生偽隨機數,就是選取m個整數x1x2,…,xm作為初值和一個適於遞推計算的數學公式

,把0,1,2,…, b k-1或其中的部分序列的自然順序打亂重排,得到一個確定的、周期的、又在統計意義下具有在區間(0,1)上均勻總體簡單子樣性質的數值序列 ,以此作為區間(0,1)上均勻分佈的隨機數使用。序列{ r n}是完全確定的,具有周期性,不同於真正均勻分佈的隨機數,故稱為偽隨機數。在計算機上用數學方法產生隨機數,具有易於實現、產生的速度快和對模擬求解的問題可以進行復算檢查等許多特點,成為計算機上最常用的一類產生均勻分佈隨機數的方法。

  選用不同的遞推計算公式

,就得到瞭不同的產生偽隨機數的方法。為得到產生速度快的算法,多取 m=1,給出一個最大長度不超過 b k的不重復的數序列。這類方法中,有早期提出的中平法、乘積取中法和移位相加法等;比較常用的有線性、非線性移位寄存器法及同餘法等。在同餘法中,又可分為加同餘法 ,乘同餘法 和混合同餘法 λ為某一乘子,其中最常用的為乘同餘法。這裡,模 M通常取為 b kb k-1(當 b k-1為素數時); xy(mod M)為同餘式,表示 xy按模 M同餘。

  在一臺尾數字長為k位的二進制計算機上,取模M=2k,乘同餘法的遞推計算同餘式為

。可以證明,乘同餘法的最大可能周斯為 2 ( k>2)。取乘子 λ= 8 α±3,初值 x 1= 2 b+1( αb為任意正整數)且 λ的二進制表示中0、1的出現不規則時,就可以得到周期長為 2 且統計性質較好的偽隨機數

  對產生的偽隨機數,要經過一定的理論分析和各種統計檢驗,以檢查得到的序列是否具有在區間(0,1)上均勻總體簡單子樣所應具有的各種統計性質,如分佈的均勻性、取值的隨機性、前後的獨立性和分段序列統計性質的一致性等。進行上述統計性質檢驗的方法很多,常用的有參數檢驗、均勻性檢驗、獨立性檢驗、連檢驗和各種不同的組合規律性檢驗等。

  有瞭偽隨機數{rn},利用各種不同的抽樣算法,如直接抽樣、變換抽樣、舍選抽樣、復合抽樣等,就可以產生模擬計算中需要的各種不同分佈的隨機數。

  設隨機變量η的分佈函數F(x)連續,逆函數F-1(y)存在,則R=Fη)為區間(0,1)上均勻分佈的隨機變量。利用這一原理,從隨機數{rn}出發,就可以直接得到η的抽樣序列

如果隨機變量 η具有密度函數 ,利用直接抽樣,得

常稱為隨機餘弦。

  在概率統計的理論研究和實際應用中,經常遇到具有密度函數

的正態隨機變量。由隨機數{ r n}出發,利用二元函數變換進行抽樣,由

給出一對均值為0、方差為1的相互獨立的正態隨機數。

  上述抽樣算法,要用到對數、開方、正弦和餘弦等算法,速度較慢。在計算機上,靈活多變、計算量省的舍選抽樣和復合抽樣更經常的用來產生所要的各種不同分佈的隨機數。以隨機餘弦

為例,舍選抽樣算法的過程為:產生一對偽隨機數 r 1r 2;當 時,舍去 r 1r 2,再產生一對新的偽隨機數;否則,

φ為(0,2π)上均勻分佈的隨機數,得隨機餘弦和隨機正弦的抽樣值

  

參考書目

 中國科學院計算中心概率統計組編著:《概率統計計算》,科學出版社,北京,1979。

 徐鐘濟編著:《蒙特卡羅方法》,上海科學技術出版社,上海,1985。