【Java】Math.random()

末鹿安然 提交于 2020-02-20 05:13:37

Math.Random()简介

Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

for (int i = 0; i < 5; i++) {
    double num = Math.random();
    System.out.println(num);
}


结果如下:
0.991836137537863
0.11210420678832744
0.3349661025274727
0.6154826738190097
0.9783462209720709

Math.Random()简单应用

1、生成 m<= num <n 的随机数

(int)(Math.random()*(n-m)+m)

例如:2<=num<8
for (int i = 0; i < 5; i++) {
     int num = (int)(Math.random()*(8-2)+2);
     System.out.println(num);
}

结果如下:
5
7
4
5
2

2、生成 m<= num <=n 的随机数

(int)Math.floor((Math.random()*(n-m+1)+m))

例如:2<=num<=8
for (int i = 0; i < 5; i++) {
     int num = (int)Math.floor((Math.random()*(8-2+1)+2));
     System.out.println(num);
}

结果如下:
3
3
2
7
8

特别地
Math.floor():向下取整
Math.ceil():向上取整
Math.round():四舍五入

3、生成 0<= num <=n 的随机数

(int)(Math.random()*(n+1))

例如:0<=num<=10

for (int i = 0; i < 5; i++) {
     int num = (int)(Math.random()*(10+1));
     System.out.println(num);
}

结果如下:
5
10
5
1
3

4、生成n位随机数(实测发现第一位不会是0)

生成4位随机数
(int)((Math.random()*9+1)*1000)

for (int i = 0; i < 5; i++) {
     int num = (int)((Math.random()*9+1)*1000);
     System.out.println(num);
}

结果如下:
1920
8395
5094
9103
6865


生成5位随机数
(int)((Math.random()*9+1)*10000)

for (int i = 0; i < 5; i++) {
     int num = (int)((Math.random()*9+1)*10000);
     System.out.println(num);
}

结果如下:
38109
52360
25660
98461
30001

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!