package MyMath;
//生成随機數 調用的是系統的方法
public class random {
public static void main(String args[])
{
Random random=new Random(5);
for(int i=0;i<10;i++)
System.out.println(random.nextInt());
}
引用java 類庫的實作方法
下面自己寫随機,,了解一下種子數,,其實對同一個種子生成的随機數是相同的,,但是種子數是不對更新的
public class random1 {
double []r=new double[2];
r[0]=5.0;
System.out.println(rand1(r));
public static double rand1(double []r)
double temp1,temp2,temp3,p,base;
base=256.0;
int a=17,b=139;
temp1=r[0]*17+139;
temp2=(int)(temp1/256);
temp3=temp1-temp2*base;
r[0]=temp3;
p=temp3/256;
return p;
//基本思想 就是 遞推法 r[i]=mod(a*r[i-1],base); 随機數 p=r[i/base;
//這個随機數 确實是随機的 但是缺陷就是它并不符合 正态分布 種子的選取會影響後來的分布的
引用一些公式就實作了符合正态分布的
public class random2 {
System.out.println(randZT(2.0,3.5,r));
//符合正态分布的随機算法
/*
*
*/
public static double randZT(double u,double t,double []r)
int i;
double total=0.0;
double result;
for(i=0;i<12;i++)
total+=rand1(r);
result=u+t*(total-6.0);
return result;
最新内容請見作者的GitHub頁:http://qaseven.github.io/