隨機數的計算公式是什么?
隨機數的計算公式是什么?
偽隨機數是指通過數學遞推公式生成的隨機數。從實用角度來看,獲取這類隨機數最簡便且自然的方法是利用計算機語言提供的隨機數發生器。通常情況下,這類發生器會輸出一個均勻分布在0到1區間內的偽隨機變量的值。其中,線性同余法是最廣泛使用且研究最深入的一種算法。線性同余法的遞推公式為。ni+1=(a*ni+b)mod M i=0,1,…,M-1。其中,M是一個足夠大的正整數,a和b是任意自然數,ni是第i個數。當函數f(n)為線性函數時,就得到了線性同余序列。以下是線性同余法生成偽隨機數的偽代碼。Random(n,m,seed,a,b)。{;r0 = seed。for (i = 1;i<;=n;i++)。ri = (a*ri-1 + b) mod m。};
導讀偽隨機數是指通過數學遞推公式生成的隨機數。從實用角度來看,獲取這類隨機數最簡便且自然的方法是利用計算機語言提供的隨機數發生器。通常情況下,這類發生器會輸出一個均勻分布在0到1區間內的偽隨機變量的值。其中,線性同余法是最廣泛使用且研究最深入的一種算法。線性同余法的遞推公式為。ni+1=(a*ni+b)mod M i=0,1,…,M-1。其中,M是一個足夠大的正整數,a和b是任意自然數,ni是第i個數。當函數f(n)為線性函數時,就得到了線性同余序列。以下是線性同余法生成偽隨機數的偽代碼。Random(n,m,seed,a,b)。{;r0 = seed。for (i = 1;i<;=n;i++)。ri = (a*ri-1 + b) mod m。};
![](https://img.51dongshi.com/20250105/wz/18480136952.jpg)
為追求真正的隨機序列,人們最初嘗試使用各種物理方法來生成滿足精度要求的均勻分布序列,但這種方法存在速度慢、效率低、需占用大量存儲空間且不可重現等缺點。為了適應計算機模擬研究的需求,人們開始研究利用算法生成模擬各種概率分布的偽隨機序列。偽隨機數是指通過數學遞推公式生成的隨機數。從實用角度來看,獲取這類隨機數最簡便且自然的方法是利用計算機語言提供的隨機數發生器。通常情況下,這類發生器會輸出一個均勻分布在0到1區間內的偽隨機變量的值。其中,線性同余法是最廣泛使用且研究最深入的一種算法。線性同余法的遞推公式為:ni+1=(a*ni+b)mod M i=0,1,…,M-1其中,M是一個足夠大的正整數,a和b是任意自然數,ni是第i個數。當函數f(n)為線性函數時,就得到了線性同余序列。以下是線性同余法生成偽隨機數的偽代碼:Random(n,m,seed,a,b){r0 = seed;for (i = 1;i<=n;i++)ri = (a*ri-1 + b) mod m}種子參數seed可以任意選擇,通常將其設為計算機當前的日期或時間;m是一個較大數,可以取為2^w,w是計算機的字長;a可以是0.01w和0.99w之間的任何整數。在使用遞推公式生成均勻分布隨機數時,式中參數n0,a,b,M的選取十分重要。例如,當M=10,a=b=n0=7時,生成的隨機序列為{6,9,0,7,6,9,……},其周期為4。當M=16,a=5,b=3,n0=7時,生成的隨機序列為{6,1,8,11,10,5,12,15,14,9,0,3,2,13,4,7,6,1……},其周期為16。當M=8,a=5,b=1,n0=1時,生成的隨機序列為{6,7,4,5,2,3,0,1,6,7……},其周期為8。
隨機數的計算公式是什么?
偽隨機數是指通過數學遞推公式生成的隨機數。從實用角度來看,獲取這類隨機數最簡便且自然的方法是利用計算機語言提供的隨機數發生器。通常情況下,這類發生器會輸出一個均勻分布在0到1區間內的偽隨機變量的值。其中,線性同余法是最廣泛使用且研究最深入的一種算法。線性同余法的遞推公式為。ni+1=(a*ni+b)mod M i=0,1,…,M-1。其中,M是一個足夠大的正整數,a和b是任意自然數,ni是第i個數。當函數f(n)為線性函數時,就得到了線性同余序列。以下是線性同余法生成偽隨機數的偽代碼。Random(n,m,seed,a,b)。{;r0 = seed。for (i = 1;i<;=n;i++)。ri = (a*ri-1 + b) mod m。};
為你推薦