偽隨機數

偽隨機數

偽隨機數,是在數字計算機上用數學方法產生的、統計意義下具有在區間(0,1)上均勻總體簡單子樣性質的數值序列rn|n=1,2,…;0≤rn≤1。

偽隨機數

蒙特卡羅法模擬求解一個實際問題,要用到各種不同分布的隨機變數、隨機向量和隨機過程 η的抽樣序列{ηn|n=1,2,…},稱它們為隨機數。如常用的二項分布隨機數、均勻分布隨機數、二維常態分配隨機數等,其中最基本、最重要的是區間(0,1)上均勻分布的隨機數。因此,如何在計算機上產生偽隨機數備受重視。
在一台b)進制(如二進制或十進制)、尾數字長為k位的計算機上,不考慮符號和階碼,可以表示bk個不同的數,即0,1,2,…,bk-1。在數學計算機上產生偽隨機數,就是選取m個整數x1,x2,…,xm作為初值和一個適於遞推計算的數學公式偽隨機數偽隨機數,把0,1,2,…,bk-1或其中的部分序列的自然順序打亂重排,得到一個確定的、周期的、又在統計意義下具有在區間(0,1)上均勻總體簡單子樣性質的數值序列偽隨機數,以此作為區間(0,1)上均勻分布的隨機數使用。序列{rn}是完全確定的,具有周期性,不同於真正均勻分布的隨機數,故稱為偽隨機數。在計算機上用數學方法產生隨機數,具有易於實現、產生的速度快和對模擬求解的問題可以進行復算檢查等許多特點,成為計算機上最常用的一類產生均勻分布隨機數的方法。
選用不同的遞推計算公式偽隨機數偽隨機數,就得到了不同的產生偽隨機數的方法。為得到產生速度快的算法,多取m=1,給出一個最大長度不超過bk的不重複的數序列。這類方法中,有早期提出的中平法、乘積取中法和移位相加法等;比較常用的有線性、非線性移位暫存器法及同餘法等。在同餘法中,又可分為加同餘法偽隨機數,乘同餘法偽隨機數和混契約余法偽隨機數,λ為某一乘子,其中最常用的為乘同餘法。這裡,模M通常取為bk或bk-1(當bk-1為素數時);x呏y(modM)為同餘式,表示x、y按模M同餘。
在一台尾數字長為k位的二進制計算機上,取模M=2k,乘同餘法的遞推計算同餘式為偽隨機數。可以證明,乘同餘法的最大可能周斯為2偽隨機數(k>2)。取乘子λ=8α±3,初值x1=2b+1(α,b為任意正整數)且λ的二進制表示中0、1的出現不規則時,就可以得到周期長為2偽隨機數且統計性質較好的偽隨機數偽隨機數
對產生的偽隨機數,要經過一定的理論分析和各種統計檢驗,以檢查得到的序列是否具有在區間(0,1)上均勻總體簡單子樣所應具有的各種統計性質,如分布的均勻性、取值的隨機性、前後的獨立性和分段序列統計性質的一致性等。進行上述統計性質檢驗的方法很多,常用的有參數檢驗、均勻性檢驗、獨立性檢驗、連檢驗和各種不同的組合規律性檢驗等。
有了偽隨機數{rn},利用各種不同的抽樣算法,如直接抽樣、變換抽樣、舍選抽樣、複合抽樣等,就可以產生模擬計算中需要的各種不同分布的隨機數。
設隨機變數η的分布函式F(x)連續,逆函式F -1(y)存在,則R=F(η)為區間(0,1)上均勻分布的隨機變數。利用這一原理,從隨機數{rn}出發,就可以直接得到η的抽樣序列偽隨機數 如果隨機變數η具有密度函式 偽隨機數,利用直接抽樣,得偽隨機數偽隨機數常稱為隨機餘弦。
在機率統計的理論研究和實際套用中,經常遇到具有密度函式偽隨機數的正態隨機變數。由隨機數{rn}出發,利用二元函式變換進行抽樣,由

偽隨機數

給出一對均值為0、方差為1的相互獨立的正態隨機數。
上述抽樣算法,要用到對數、開方、正弦和餘弦等算法,速度較慢。在計算機上,靈活多變、計算量省的舍選抽樣和複合抽樣更經常的用來產生所要的各種不同分布的隨機數。以隨機餘弦偽隨機數為例,舍選抽樣算法的過程為:產生一對偽隨機數r1、r2;當偽隨機數時,捨去r1、r2,再產生一對新的偽隨機數;否則,偽隨機數偽隨機數記φ為(0,2π)上均勻分布的隨機數,得隨機餘弦和隨機正弦的抽樣值

偽隨機數

參考書目
 中國科學院計算中心機率統計組編著: 《機率統計計算》,科學出版社,北京,1979。
 徐鍾濟編著:《蒙特卡羅方法》,上海科學技術出版社,上海,1985。

配圖

相關連線

相關詞條

相關搜尋

熱門詞條

聯絡我們