【Java】Randomクラスで乱数を生成する方法【数値・真理値】

【Java】Randomクラスで乱数を生成する方法【数値・真理値】
目次

JavaのRandomクラス乱数を生成する方法を紹介します。Randomクラスで数値(整数・小数)と真理値について乱数を生成してみます。

Randomクラスのインスタンス生成

Randomクラスは乱数を生成するためのクラスです。

Randomクラスのインスタンス生成
1Random random = new Random();
2Random random = new Random(数値);
3
4// Random random = new Random(10); と同じ
5Random random = new Random();
6random.setSeed(10);

コンストラクタの引数に数値を指定することで、その数値をseedとして乱数を生成することができます。これはsetSeedメソッドでseedを指定した場合と同じ意味を持ちます。

int型の乱数を生成する

int型の乱数を生成したい時にはnextInt()メソッドが便利です。

nextIntメソッドの書式例
1Random random = new Random();
2random.nextInt(整数); // 0から"整数-1"以下の範囲で乱数を生成する
3random.nextInt(); // int型の範囲で乱数を生成する

0も範囲に入るので注意しましょう。0を入れたくない時は、戻り値を+1することで1以上の数値を生成できます。また、数字を入れなかった場合はint型が取り得る範囲での乱数を取得します。

RandomTest1.java
 1import java.util.Random;
 2
 3public class RandomTest1 {
 4
 5  public static void main(String[] args) {
 6
 7    Random random = new Random();
 8
 9    // 0から9の範囲で整数が生成される
10    int num = random.nextInt(10);
11    System.out.println("0から9の範囲:" + num);
12
13    // 1から100の範囲で整数が生成される
14    num = random.nextInt(100) + 1;
15    System.out.println("1から100の範囲:" + num);
16
17    // int型が取り得る範囲での乱数を取得
18    num = random.nextInt();
19    System.out.println("int型の範囲:" + num);
20  }
21}
出力結果(一例)
10から9の範囲:0
21から100の範囲:38
3int型の範囲:-1021826723

整数の乱数が生成されました。

double型の乱数を生成する

double型の乱数を生成したい時はnextDoubleメソッドが便利です。

nextDoubleメソッドの書式例
1Random random = new Random();
2random.nextDouble(); // 0から1.0未満の範囲で乱数を生成する
3
4Math.random(); // 同じく0から1.0未満の範囲で乱数を生成する

また、Mathクラスrandomメソッドも同じ機能を持ちます。

RandomTest2.java
 1import java.util.Random;
 2
 3public class RandomTest2 {
 4
 5  public static void main(String[] args) {
 6
 7    Random random = new Random();
 8
 9    // 0から1.0未満の範囲で乱数を生成される
10    double num = random.nextDouble();
11    System.out.println("0から1.0未満の範囲(Randomクラス):" + num);
12
13    // Mathクラスのrandomメソッドの場合
14    num = Math.random();
15    System.out.println("0から1.0未満の範囲(Mathクラス):" + num);
16  }
17}
出力結果(一例)
10から1.0未満の範囲(Randomクラス):0.2127723545518896
20から1.0未満の範囲(Mathクラス):0.3652517356882634

小数の乱数が生成されました。

boolean型の乱数を生成する

boolean型の乱数を生成したい時はnextBoolean()メソッドが便利です。

nextBooleanメソッドの書式例
1Random random = new Random();
2random.nextBoolean(); // trueかfalseを生成する
RandomTest3.java
 1import java.util.Random;
 2
 3public class RandomTest3 {
 4  public static void main(String[] args) {
 5
 6    Random random = new Random();
 7
 8    // trueまたはfalseを生成する
 9    boolean b = random.nextBoolean();
10    System.out.println("boolean型の乱数:" + b);
11  }
12}
出力結果(一例)
1boolean型の乱数:true

真偽値の乱数が生成されました。


int型double型boolean型の3種類の乱数の生成方法について紹介しました。以上で記事を終わりにします。

参考文献