首页 > 技术文章 > 获取随机数

zhouj850 2020-05-11 10:52 原文

注意 Math . random() 这个方法返回是 double 类型,注意取值的范围 0≤ x <1 ( 能够取到零值,注意除零异常 ) ,如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。
 

Random.nextInt()方法,是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

语法
int nextInt() //随机返回一个int型整数
int nextInt(int num) //随机返回一个值在[0,num)的int类型的整数,包括0不包括num
nextInt能接受一个整数作为它所产生的随机整数的上限,下限为零,若要达到非零下限的效果,必须把上限减去下限的结果传给 nextInt( ),然后把下限加入 nextInt( ) 返回的整数。

实例
/**
* 生成任意整数
*/
@Test
public void RandomNextIntDemo1(){
Random r = new Random();
int n1 = r.nextInt();
System.out.println("d1:"+n1);
}

/**
* 生成[0,10)区间的整数
*/
@Test
public void RandomNextIntDemo2(){
Random r = new Random();
int n2 = r.nextInt(10);
int n3 = Math.abs(r.nextInt() % 10);
System.out.println("n2:"+n2);
System.out.println("n3:"+n3);
}

/**
* 生成[0,10]区间的整数
*/
@Test
public void RandomNextIntDemo3(){
Random r = new Random();
int n3 = r.nextInt(11);
int n4 = Math.abs(r.nextInt() % 11);
System.out.println("n3:"+n3);
System.out.println("n4:"+n4);
}
注意Random.nextInt(4)将产生0,1,2,3这4个数字中的任何一个数字,注意这里不是0-4,而是0-3。

Java Random类
Java Random生成随机数实例
Java Random.setseed()设置随机数种子
Java Random.nextDouble,nextFloat,nextLong,nextBoolean,nextBytes随机数

 

推荐阅读