Random类
生成一个[0,10)的随机整数
Random random = new Random();
int num1 = random.nextInt(10);
生成一个[0,10]范围的随机整数
[0,11) -> [0,10]
int num2 = random.nextInt(11);
生成一个[1,10]范围的随机整数
[0+1,10+1) -> [1,11) -> [1,10]
int num3 = random.nextInt(10) + 1;
Math.random()
它的作用是生成一个[0,1)的随机小数
生成一个[0,10)的随机小数
double类型的[0,10)
[0,1) -> [0,10)
double a_double = Math.random() * 10;
生成一个[0,10)的随机整数
int num1 = (int)a_double;
生成一个[0,10]范围的随机整数
强转为int时是向下取整 floor()
[0,10+0.5) -> [0,10.5) -> [0,10]
int num2 = (int) (a_double + 0.5);
或一步到位
int num3 = (int) (Math.random() * 10 + 0.5);
生成一个[1,11]范围的随机整数
[0+1.5,10+1.5) -> [1.5,11,5] 向下取整为 -> [1,11]
int num4 = (int) (Math.random() * 10 + 1.5);
测试代码
for (int i = 0; i < 1000; i++) {
a = (int) (Math.random() * 10 + 1.5);
if (a == 1) System.out.println(0);
if (a == 11) System.out.println(11);
}