線性同餘法的偽隨機數

2022-02-23 15:26:29 字數 648 閱讀 6657

學校練習,簡單的我就不放上來了,值得整理的,我儲存一下

習題91.1.偽隨機數(線性同餘法)

1.1.1.演算法描述

我們使用線性同餘法,來限定一些離散點在y=a*x+b上。

1.1.2.偽**

random(n,m,seed,a,b)

//根據現行同餘法生成

n個偽隨機書的乙個序列

//輸入

:乙個正整數

n和正整數引數

m,seed,a,b

//輸出

:隨機數組

r0<-seed

for i<-1 to n do

ri<-(a*ri-1+b) mod m

end1.1.3.演算法實現

public static long random(int n,int m,long seed,int a,int b){

long val=new long[n];

val[0]=seed%m;

for(int i=1;i

1.2.演算法小結

使用線性同於法,複雜度a[n],能實現比較類隨機的偽隨機。

偽隨機數產生的乘同餘法

我們都知道我們平常 所用的隨機數都是偽隨機數,大家是否想過我們的計算機能否產生真隨機數?其實,是可以的,比如使用物理方法 但是,所以,我們大多都偏愛了偽隨機數,下面,讓我們來了解偽隨機數到底是如何生成的。我們先設計乙個函式f x f x f x 也可以叫做遞推公式 然後給定x 1x 1 x1 輸出x...

線性同餘法生成為隨機數

線性同餘方法 lcg 是個產生偽隨機數的方法。它是根據遞迴公式 其中是產生器設定的常數。lcg的週期最大為 但大部分情況都會少於m。要令lcg達到最大週期,應符合以下條件 互質 的所有質因子的積能整除 若是4的倍數,也是 都比 小 是正整數。線性同餘演算法有m a c 和x0 4個引數,通過置xn ...

隨機數 偽隨機數

隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...