动手动脑:
(1)纯随机数发生器
Modulus=231-1=int.MaxValue
Multiplier=75=16807
C=0
当显示过231-2个数之后,才可能重复。
动手动脑:
编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。
代码如下:
package suijishu;
public class suijishu {
public long a=12345L;//定义long类型的a,b,c变量
public long c=12345L;
public long m=456123L;
public long r=1;
public long rand()//调用纯随机数发生器的函数
{
r=(r*a+c)%m;
return r;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
suijishu s=new suijishu();
long r;
for(int i=1;i<1000;)//输出1000个随机数
{
r=s.rand();
System.out.print(r+" ");
i++;
if (i%20==0)//每输入20个换行
System.out.println("");
}
}
}
代码截图:
(2)
请看以下代码,你发现了有什么特殊之处吗?
代码运行截图:
发现了整型和浮点型平方的差别,浮点型能精确到小数位。