记录一下初学的产生随机数的两种方式;
1.Math.random()
while(true) {
double d = Math.random();
System.out.println(d);
}
输出的结果:
0.9009543327808643
0.11403227371142932
0.1853370309242408
0.9445037648923861
0.2417202771417457
0.1529918164691202
0.5461773460774235
0.8979086703363222
0.8783237687463059
0.29177574390447447
0.13038357834698167
0.19368401613319242
0.4540463076219643
0.8078330549708114
0.9510933870396954
0.5212030681402899
0.49726028787219645
0.40813851055729466
0.2289899195700803
0.4342703362250917
0.611225863660083
0.7249406358542767
0.7484158762542183
0.08290859020979702
0.8733001185855332
0.8960216288362557
0.43731993476835784
Math.random()方法返回了一个double类型的0--1.0的数字,没有负数,大于0且小于1.0;
所以可以用random产生任意范围的整数,当然这需要强转,如:产生0-9;
int i = (int )(Math.random()*10);
System.out.println(i);
产生13-20 的随机整数:
int i = (int )(Math.random()*(20-13+1))+13;
System.out.println(i);
简单的道理来说就是任何数乘以大于0小于1的随机数,产生的都是0-这个数的随机数,再用强转之后就都是(0~该数-1),最后加上最小的数,那就达到了目的。
int i = (int )(Math.random()*(最大数-最小数+1))+最小数;
可以产生任何想要的随机整数范围。
2.Random类
Random random = new Random();
System.out.println(random.nextInt(20));
输出:
12
6
5
10
12
5
6
17
2
16
9
10
5
8
3
14
5
7
7
9
5
5
12
5
6
6
14
2
19
3
0
产生的是0-nextInt(i)括号中的数值,包括0 ,但是不包括i;全都是整数
还可以用nexdouble()方法产生0-1.0的随机数,返回double型