JAvaで乱数を生成する2つの方法:Math.random()とRandomクラス

1566 ワード

初学のランダム数を生成する2つの方法を記録します.
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()メソッドは、0より大きく1.0未満の負の数を持たないdoubleタイプの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型を返すこともできます