随机数

随机数
使用 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版权协议,转载请附上原文出处链接和本声明。