一、Math中的random
- Math.random() 随机产生一个double类型的浮点数,范围为[0.0,1.0)
public void mathRandom() {
Math.random();
double d = Math.random();
System.out.println(d);
}
二、Random中的random
public void random() {
Random random = new Random(); // 实例化Random对象
// 随机一个int数
System.out.println("random.nextInt() is:" + random.nextInt());
// 随机一个int数,范围为[0,n)
System.out.println("random.nextInt(5) is:" + random.nextInt(5));
// 应用:随机一个[30,50)范围的整数
System.out.println("随机[30,50)整数 is:" + (random.nextInt(20) + 30));
// 随机一个double数,范围为[0.0,1.0)
System.out.println("random.nextDouble() is:" + random.nextDouble());
// 应用:随机一个[30,50)的浮点数
System.out.println("随机[30,50)浮点数 is:" + (random.nextDouble() * 20 + 30));
// 随机一个[a,b)范围的整数,公式为:random.nextInt(b-a)+a;
System.out.println("随机一个-80~-50的整数 is:" + (random.nextInt(30) - 80));
// 随机一个[a,b)范围的浮点数,公式为:random.nextDouble()*(b-a)+a;
System.out.println("随机一个-80~-50的浮点数 is:" + (random.nextDouble() * 30 - 80));
}
输出:
random.nextInt() is:1490443248
random.nextInt(5) is:1
随机[30,50)整数 is:34
random.nextDouble() is:0.2868901859726579
随机[30,50)浮点数 is:44.31808985630237
随机一个-80~-50的整数 is:-55
随机一个-80~-50的浮点数 is:-70.46154924269067