初学Java,对于随机数生成有着不熟练的掌握。
特此通过问题的方式,练习记录随机数生成的几种方法:
问题:
分别生成在[0 , 100]和[20 , 30],[1.1 , 2.8]区间内的随机数
解答:
//导入需要产生随机数的包
import java.util.Random;
public class RandomTestDrive {
public static void main(String [] args){
//创建一个Random类型的random实例
Random random = new Random();
//对实例random使用nextInt方法,并将得到的结果赋值给int类型的变量
//nextInt方法中的参数是指[ 0 , 101 )的左闭右开区间,故实际取到的整数为[ 0 , 100 ]
int x = random.nextInt(101);
//这里的"+"意思是在这个左闭右开区间中的左右范围中分别加上一个数
//此处原本为[ 0 , 11 )的区间左右分别加上20,最终范围就变成了[ 20 , 31 ),也就是[ 20 , 30 ]
int y = random.nextInt(11)+20;
//这里投机取巧的先扩大为整数的int类型,然后将这个整数转成double,再除去变大的倍数即可
double z = ((double)random.nextInt(170)+110)/100;
//输出变量
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}