随机数的产生 java 实训笔记day1
java有三种随机数的生成方式:
第一种:new Random
第二种: Math.random()
第三种: currentTimeMillis()
第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是是以指定的种子值进行。产生之后,借助不同的语句产生不同类型的数。
种子就是产生随机数的第一次使用值。机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀的散步在空间中。以后产生的随机数都与前一个数有关。以代码为例:
public static void main(String[] args){
Random r = new Random(1);
for(int i=0;i<5;i++)
{
int ran1 = r.nextInt(100);
System.out.println(ran1);
}
}
Random类是java.util包中的一个类,专门用来产生各种类型的随机数;
使用该类必须先生成对象,再调用它的方法,Random类中所包含方法大致如下:
方法 说明
boolean nextBoolean() 生成一个随机的 boolean 值,生成 true 和 false 的值概率相等
double nextDouble() 生成一个随机的 double 值,数值介于[0,1.0),含 0 而不包含 1.0
int nextlnt() 生成一个随机的 int 值,该值介于 int 的区间,也就是 -231~231-1。如果 需要生成指定区间的 int 值,则需要进行一定的数学变换
int nextlnt(int n) 生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。如果想生成 指定区间的 int 值,也需要进行一定的数学变换
void setSeed(long seed) 重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象 和相同种子数使用 new 关键字创建出的 Random 对象相同
long nextLong() 返回一个随机长整型数字
boolean nextBoolean() 返回一个随机布尔型值
float nextFloat() 返回一个随机浮点型数字
double nextDouble() 返回一个随机双精度值