java中产生随机数的两种方式 : Math.random() 和 Random类

记录一下初学的产生随机数的两种方式;

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型

 

你可能感兴趣的:(java中产生随机数的两种方式 : Math.random() 和 Random类)