线性同余法产生1000个随机数
設(shè)計思路:根據(jù)同余法產(chǎn)生隨機數(shù)線性同余算法有m 、a 、c 和X0 4個參數(shù),通過置Xn ?≡aXn + c (mod m) ,求得隨機數(shù)序列< Xn > , 這個序列稱作線性同余序列。m、a 、c 和X0 分別稱做模數(shù)、乘數(shù)、增量和初始值。從代碼中設(shè)置m,a,c的值,在從鍵盤輸入隨機種子X0,再利用for循環(huán)產(chǎn)生n個隨機數(shù)。
?程序流程圖:
源代碼:
package 測試二;
import java.util.Scanner;
public class Random {
public static void main(String[] args)
{
//輸入?yún)?shù);
int j=2;
int m=(int) (Math.pow(2, 27)-1);
int a=12;
int c=0;
System.out.println("請輸入你要生成的隨機數(shù)個數(shù)N:");
Scanner input=new Scanner (System.in);
int n=input.nextInt();
//開辟大小為N的數(shù)組;
int b[];
b=new int[n];
System.out.println("請輸入隨機數(shù)的種子:");
//輸入隨機數(shù)的種子;
b[0]=input.nextInt();
System.out.println("第1個隨機數(shù): "+b[0]);
for(int i=0;i<n-1;i++)
{
b[i+1]=(b[i]*a+c)%m;
System.out.print("第"+j+"個隨機數(shù):");
System.out.println(b[i+1]);
j++;
}
}
}
結(jié)果截圖:
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaohaigege666/p/7663493.html
總結(jié)
以上是生活随笔為你收集整理的线性同余法产生1000个随机数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 安装apex_《Apex
- 下一篇: C#地震反应谱