學校練習,簡單的我就不放上來了,值得整理的,我保存一下
習題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],能實現比較類隨機的偽隨機。