線性同余法的偽隨機數


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

習題9

 

1.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

end

 

1.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<n;i++) val[i]=(a*val[i-1]+b)%m;
    return val;
}

 

1.2. 算法小結

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM