見出し画像

Java:数値の範囲を指定した乱数の出し方

※自分用学習メモです

Javaで指定した範囲の乱数を生成するためには、java.util.Random クラスや Math.random() メソッドを使うことができます。ここでは両方の方法を紹介します。

1. java.util.Random クラスを使う方法

例: 1から100までの範囲で乱数を生成する場合

import java.util.Random;

public class RandomNumberExample {
    public static void main(String[] args) {
        Random random = new Random();
        int min = 1;
        int max = 100;
        
        // minからmaxまでの範囲の乱数を生成
        int randomNumber = random.nextInt((max - min) + 1) + min;
        
        System.out.println("ランダムな数値: " + randomNumber);
    }
}

Random クラスを使った乱数生成の仕組み:

  • random.nextInt((max - min) + 1) + min; の部分で、min から max までの乱数を生成します。

    • nextInt(bound) は、0 から bound-1 までの整数を生成するため、範囲を調整するために (max - min) + 1 を使っています。

    • さらに + min で、生成された乱数が min 以上の値になるように調整しています。


2. Math.random() メソッドを使う方法

例: 1から100までの範囲で乱数を生成する場合

public class RandomNumberExample {
    public static void main(String[] args) {
        int min = 1;
        int max = 100;

        // minからmaxまでの範囲の乱数を生成
        int randomNumber = (int)(Math.random() * (max - min + 1)) + min;

        System.out.println("ランダムな数値: " + randomNumber);
    }
}

Math.random() を使った乱数生成の仕組み:

  • Math.random() は、0.0 から 1.0 未満のランダムな小数を生成します。

  • Math.random() * (max - min + 1) により、min から max までの範囲の乱数が得られるようにスケーリングします。

  • その結果を (int) でキャストして、小数点を切り捨て、整数を生成しています。


まとめ

  • Random クラスは、もう少し高機能な乱数生成が可能で、特定のシード値を指定して再現性のある乱数生成ができます。

  • Math.random() は手軽に乱数を生成したいときに便利です。

どちらの方法も、指定した範囲内の乱数を生成するのに有効です。

いいなと思ったら応援しよう!