随机数
使用 Math.random(); 方法 范围(0.0 <= Math.random() < 1.0)
假如是随机生成一个4位数?
int num = Math.random()*10000;
你觉得是那种方式对吗?
很明显不对,先说结果:int num = (int)(Math.random()*9000+1000);
因为Math.random();的范围是0-1,包括0 ,不包括1;所以 Math.random()*10000; 有几率生成0以及0.0000?
所以,即使*10000也没办法。
而 Math.random()*9000+1000; 就很好的解决了问题。生成的随机数小于1,所以*9000结果也是小于9000的,再加上1000也是小于10000,
再说因为是加上1000,所以起点直接大于等于1000;所以生成的4位数范围也就是1000<= Math.random()*9000+1000 <10000;
这种写法也是公式,不论是10000,还是1000,都可以这样写。
1000的写法:Math.random()*900+100; 这生成的是3位数。
生成一个指定范围的随机数
random.nextInt(int num);生成一[0,x-1]的值,包括两端
例如:[0,40] 包含最大最小值
public static void main(String[] args) {
Random random = new Random();
for (int i = 0; i < 100; i++) {
int num = random.nextInt(40+1);
System.out.print(num + " ");
}
}
结果:
7 38 29 15 3 37 38 20 0 20 32 20 33 40 25 16 10 40 39 33 26 7 17 26 11 22 40 7 21
33 39 27 2 16 20 39 1 37 2 30 2 5 36 21 27 23 24 40 5 34 14 16 14 20 12 8 11 28 40
31 10 25 40 24 2 27 9 4 15 31 2 10 6 17 28 4 0 26 16 35 23 32 5 13 27 37 21 18 7
23 27 23 22 30 12 33 11 13 23 11
版权声明:本文为weixin_45658861原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。