第二节java课动手动脑

1.纯随机数发生器

问题:

 

 

 

源代码:

package Main;
import java.util.Date;

public class Main {
//初始数值设置
static long a=16807L;
static long m=2147483647L;
static long c=46;


public static void main(String[] args) {
long x=5642L;
for(int i=0;i<1000;i++)
{ x=random(x);
System.out.println(x);
}
}
//random函数
public static long random(long x)
{
x=(a*x+c)%m;
return x;

}
}

程序截图:

 

 设计思路:用x=(a*x+c)mod m,利用前一位x求出后一位x,这样设计虽然会造成结果循环,但m只要足够大循环就会无限大可以不用考虑。m也决定着生成随机数的最大值为2147483647。

2.

 

 

特殊之处:

两个不同的函数公用同一个函数名。属于重载。

 

posted @ 2019-09-26 16:56  西西里啊  阅读(127)  评论(0编辑  收藏  举报