Javaで不規則な数値(乱数)を取得する場合は、java.lang.Mathおよびjava.util.Randomを利用します。
Randomクラスを利用する場合は、java.utilパッケージを指定する必要があります。
乱数を取得するプログラム
Mathクラスを利用する
0~0.9999…までのいずれかの数値を取得する
0~0.999…ではなく整数で0~最大値までを利用したい場合は、下記のように記述する
整数でかつ最小値と最大値を定めて利用したい場合は、下記のように記述する
0~0.9999…までのいずれかの数値を取得して、変数に代入する
0から10までのいずれかの数値を取得し、変数に代入する
5から10までのいずれかの数値を取得し、変数に代入する
補足 最小値および最大値を設定した場合の処理概要
int a = (int)(Math.random() * 6) + 5;
番号 | 記述 | 処理の概要 | 処理結果 |
---|---|---|---|
① | ①Math.random() | 0から0.999…までを取得できる | 例① 0.93が取得出来た場合 例② 0が取得できた場合 |
② | ①の結果 * 6 | [6を掛けているのは以下の理由] 最大値10に1を足して、さらに最小値である5を引く | 例① [0.93 * 6]となり、結果は5.58 例② [0 * 6]となり、結果は0 |
③ | (int)②の結果 | 整数にするためintでキャストする | 例① [(int)5.58]となり、結果は5 例② [(int)0]となり、結果は0 |
④ | ③の結果 + 5 | 最小値を5で設定しているため、その数値を加算 | 例① [5 + 5]となり、結果は10 例② [0 + 5]となり、結果は5 |
Randomクラスを利用する
下記の記述では、java.utilパッケージを含む記述になっていますが、importすれば省略も可能です。※サンプルプログラムではimportを利用しています。
また、Randomクラスを利用する場合、インスタンスを生成する必要があります。Randomクラスのインスタンスは一度生成すれば、何度でも乱数を取得できます。
int型の数値(整数)を取得する
int型の変数 = インスタンス変数.nextInt();
整数で0~最大値までを利用したい場合は、下記のように記述する
int型の変数 = インスタンス変数.nextInt(最大値 + 1);
整数でかつ最小値と最大値を定めて利用したい場合は、下記のように記述する
int型の変数 = インスタンス変数.nextInt(最大値 + 1 – 最小値) + 最小値;
int型の数値(整数)を取得して、変数に代入する
int a = random.nextInt();
0から10までのいずれかの数値を取得し、変数に代入する
int a = random.nextInt(11);
5から10までのいずれかの数値を取得し、変数に代入する
int a = random.nextInt(6) + 5;
サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import java.util.Random; class SampleCode03{ public static void main(String[] args){ /*** Mathクラスを利用した乱数取得 ***/ for(int i = 0; i < 5; i++){ double a = Math.random(); int b = (int)(a * 11);//0から10までの乱数 int c = (int)(a * 6 ) + 5;//5から10までの乱数 System.out.println("0-10の乱数:" + b); System.out.println("5-10の乱数:" + c); } /*** Randomクラスを利用した乱数取得 ***/ Random random = new Random(); for(int i = 0; i < 5; i++){ int d = random.nextInt(); //整数による乱数 int e = random.nextInt(11); //0から10までの乱数 int f = random.nextInt(6) + 5; //5から10までの乱数 System.out.println("乱数:" + d); System.out.println("0-10の乱数:" + e); System.out.println("5-10の乱数:" + f); } } } |
C:\work>javac SampleCode03.java
C:\work>java java SampleCode03
0-10の乱数:0
5-10の乱数:5
0-10の乱数:10
5-10の乱数:10
0-10の乱数:6
5-10の乱数:8
0-10の乱数:0
5-10の乱数:5
0-10の乱数:1
5-10の乱数:5
乱数:607109220
0-10の乱数:7
5-10の乱数:9
乱数:1062415372
0-10の乱数:4
5-10の乱数:10
乱数:-1363839522
0-10の乱数:5
5-10の乱数:6
乱数:-1374240546
0-10の乱数:10
5-10の乱数:8
乱数:-702237218
0-10の乱数:5
5-10の乱数:8