不規則な数値(乱数)を取得する《逆引き》

記事上広告

Javaで不規則な数値(乱数)を取得する場合は、java.lang.Mathおよびjava.util.Randomを利用します。

Randomクラスを利用する場合は、java.utilパッケージを指定する必要があります。

乱数を取得するプログラム

Mathクラスを利用する

0~0.9999…までのいずれかの数値を取得する

double型の変数 = Math.random();

0~0.999…ではなく整数で0~最大値までを利用したい場合は、下記のように記述する

int型の変数 = (int)(Math.random() * 最大値+1);

整数でかつ最小値と最大値を定めて利用したい場合は、下記のように記述する

int型の変数 = (int)(Math.random() * (最大値+1 – 最小値)) + 最小値;
記述例

0~0.9999…までのいずれかの数値を取得して、変数に代入する

double a = Math.random();

0から10までのいずれかの数値を取得し、変数に代入する

int a = (int)(Math.random() * 11);

5から10までのいずれかの数値を取得し、変数に代入する

int a = (int)(Math.random() * 6) + 5;

補足 最小値および最大値を設定した場合の処理概要

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型の数値(整数)を取得する

java.util.Random インスタンス変数 = new java.util.Random();
int型の変数 = インスタンス変数.nextInt();

整数で0~最大値までを利用したい場合は、下記のように記述する

java.util.Random インスタンス変数 = new java.util.Random();
int型の変数 = インスタンス変数.nextInt(最大値 + 1);

整数でかつ最小値と最大値を定めて利用したい場合は、下記のように記述する

java.util.Random インスタンス変数 = new java.util.Random();
int型の変数 = インスタンス変数.nextInt(最大値 + 1 – 最小値) + 最小値;
記述例

int型の数値(整数)を取得して、変数に代入する

java.util.Random random = new java.util.Random();
int a = random.nextInt();

0から10までのいずれかの数値を取得し、変数に代入する

java.util.Random random = new java.util.Random();
int a = random.nextInt(11);

5から10までのいずれかの数値を取得し、変数に代入する

java.util.Random random = new java.util.Random();
int a = random.nextInt(6) + 5;

サンプル

実行例

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

関連記事

第5章 Mathクラス

スポンサーリンク
レクタングル