Java で指定された範囲内の乱数を生成する

Mohammad Irfan 2023年10月12日
  1. Java の ThreadLocalRandom クラスを使用して乱数を生成する
  2. Java の Math クラスを使用して乱数を生成する
  3. Java の Random クラスを使用して乱数を生成する
  4. Java の Random クラスを使用して乱数を生成する
  5. Java の Random クラスと IntStream を使用して乱数を生成する
  6. Java で nextFloat メソッドを使用して乱数を生成する
  7. Java の RandomData クラスを使用して乱数を生成する
  8. Java で SecureRandom クラスを使用して乱数を生成する
  9. Java の RandomUtils クラスを使用して乱数を生成する
Java で指定された範囲内の乱数を生成する

このチュートリアルでは、Java で指定された範囲内の乱数を生成する方法を紹介します。

Java で乱数を生成する方法はいくつかあります。たとえば、ThreadLocalRandom クラスの nextInt() メソッド、Math クラスの random() メソッド、nextInt() メソッドです。Random クラス、Random クラスの ints() メソッド、Random クラスおよび RandomUtil クラスの nextFloat() メソッドなど。

Java の ThreadLocalRandom クラスを使用して乱数を生成する

Java 並行パッケージは、nextInt() メソッドを持つクラス ThreadLocalRandom を提供します。このメソッドは、指定された範囲内でランダムな整数を生成できます。以下の例を参照してください。

import java.util.concurrent.ThreadLocalRandom;

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    ThreadLocalRandom tlr = ThreadLocalRandom.current();
    int randomNum = tlr.nextInt(min_val, max_val + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

出力:

Value in double: 12.9
Value in int: 12

Java の Math クラスを使用して乱数を生成する

Java Math クラスを使用して、指定された範囲内の乱数を生成できます。ここでは、Math クラスの random() メソッドを使用して乱数を取得します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    double randomNum = Math.random() * (max_val - min_val);
    System.out.println("Random Number: " + randomNum);
  }
}

出力:

Id: 1212
Name: Samre

Java の Random クラスを使用して乱数を生成する

Java の Random クラスは、整数値を返す nextInt() メソッドを使用して、指定された範囲内のランダム整数を生成できます。以下の例を参照してください。

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random ran = new Random();
    int x = ran.nextInt(max_val) + min_val;
    System.out.println("Random Number: " + x);
  }
}

出力:

Id: 1212
Name: Samre

Java の Random クラスを使用して乱数を生成する

これは、指定された範囲内のランダムな整数を取得するための別のソリューションです。ここでは、さまざまなパラメータを使用して、Random クラスの nextInt() メソッドを使用します。以下の例を参照してください。

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    int randomNum = min_val + rand.nextInt((max_val - min_val) + 1);
    System.out.println("Random Number: " + randomNum);
  }
}

出力:

Random Number: 75

Java の Random クラスと IntStream を使用して乱数を生成する

ここでは、乱数のストリームを返す Random クラスの ints() メソッドを使用します。forEach() メソッドを使用して、ints() メソッドによって生成されたすべてのランダムな整数を出力します。以下の例を参照してください。

import java.util.Random;
import java.util.stream.IntStream;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    IntStream stream = rand.ints(5, min_val, max_val);
    stream.forEach(System.out::println);
  }
}

出力:

94
35
90
74
47

Java で nextFloat メソッドを使用して乱数を生成する

Random クラスは、float 型の乱数を生成するためのメソッド nextFloat() を提供します。浮動小数点型の乱数を取得する場合は、このメソッドが役立ちます。以下の例を参照してください。

import java.util.Random;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    Random rand = new Random();
    float rand_val = rand.nextFloat() * (max_val - min_val);
    System.out.println(rand_val);
  }
}

出力:

71.88764

Java の RandomData クラスを使用して乱数を生成する

Apache Commons ライブラリを使用している場合は、RandomData クラスを使用してください。このクラスは、整数値を返すメソッド nextInt() を提供します。このメソッドを使用して、指定された範囲内のランダムな整数を生成できます。以下の例を参照してください。

import org.apache.commons.math.random.RandomData;
import org.apache.commons.math.random.RandomDataImpl;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomData randomData randomData = new RandomDataImpl();
    int number = randomData.nextInt(min_val, max_val);
    System.out.println(number);
  }
}

出力:

72

Java で SecureRandom クラスを使用して乱数を生成する

SecureRandom クラスは、安全な乱数を作成するために使用される Java の security パッケージに属しています。ここでは、Date クラスを使用してシードを生成し、次に nextInt() メソッドを使用してランダムな整数を生成します。以下の例を参照してください。

import java.security.SecureRandom;
import java.util.Date;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    SecureRandom rand = new SecureRandom();
    rand.setSeed(new Date().getTime());
    int randomNum = rand.nextInt((max_val - min_val) + 1) + min_val;
    System.out.println(randomNum);
  }
}

出力:

65

Java の RandomUtils クラスを使用して乱数を生成する

Apache Commons ライブラリの RandomUtil クラスを使用して、ランダムな整数を生成できます。このクラスの nextInt() メソッドは整数クラスを返します。以下の例を参照してください。

import org.apache.commons.lang3.RandomUtils;
public class SimpleTesting {
  public static void main(String[] args) {
    int min_val = 10;
    int max_val = 100;
    RandomUtils random = new RandomUtils();
    int randomNum = random.nextInt(min_val, max_val);
    System.out.println(randomNum);
  }
}

出力:

66

関連記事 - Java Math

関連記事 - Java Number