乱数は、ボード ゲーム用のサイコロやギャンブル プログラムなどのアプリケーションの作成によく使用されます。通常、乱数の生成には時間がかかります。しかし、Java プログラミング言語では、これを 3 つの方法で実現できます。これらについては、以下の「Java の乱数生成関数」セクションで説明します。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java では、次の 3 つの方法を使用して乱数を生成できます。
Java Math クラスは、対数、平均、べき乗などの計算を行うためのメソッドを多数提供しています。random() は、0.0 から 1.0 の範囲内の正の double 値を返すメソッドの 1 つです。0.0 はは包括的であり、1.0 は排他的です。このメソッドは、パラメーターを使用しても使用しなくても使用できます。パラメータが指定されている場合、生成される乱数は指定されたパラメータの範囲内になります。
コード:
public class RandomNumber { double num; //Declare a variable num //Method which generates a random number public double randnum() { num=Math.random(); return num; } // Main Method of a program public static void main(String[] args) { //Printing a random number System.out.println("Random Number generated inside main method: "+Math.random()); //Create an object of the class RandomNumber RandomNumber randomobj=new RandomNumber(); //Store the return value obtained from randnum method in a variable randomval double randomval=randomobj.randnum(); //Printing the random number stored in variable randomval System.out.println("Random Number generated inside randomnumber method: "+randomval); } }
出力:
上記の例では、乱数は Math.random() メソッドを使用して 2 つの方法で生成されます。メイン メソッド内で直接適用する方法と、オブジェクトを使用して Math.random() を含むメソッドを呼び出す方法です。 上の説明でも述べたように、0.0から1.0の範囲で2つの乱数が生成されていることがわかります。
パラメータの範囲内で乱数を生成するために使用される一般的な式を以下に示します。
Math.random()* (( maxvalue – minvalue ) +1 ) + minvalue
ここで、maxvalue は範囲の上限、min value は範囲の下限です。たとえば、10 から 20 までの乱数を生成するには、最大値を 20、最小値を 10 に設定します。
コード:
public class RandomNumParameters { public double randomnum(double x,double y)//max value-y, min value-x { double z =(Math.random()*((y-x)+1)+x); //Formula for random number generation within a range return z; } public static void main(String[] args) { RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters double num=ran.randomnum(3.0, 10.0); //Call the Method System.out.println("Random number generated within the range of 3 and 10: "+num ); } }
出力:
Java.util.random クラスは、float、long、integer、double、Boolean などのさまざまなデータ型の乱数を生成します。数値の範囲を引数として渡して、その範囲内で乱数を生成することもできます。 。このクラスを使用するには、java.util の Random クラスをインポートする必要があります (java.util.Random)。このクラスがインポートされたら、インスタンスを作成し、そのインスタンスを使用して next long()、nextInt() などのメソッドを呼び出します。
コード:
//Java program to generate Random numbers using Random class package Sample; import java.util.Random; //import Random Class public class RandomNum { public static void main(String[] args) { Random rand=new Random(); //Create instance of Random class double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable System.out.println("Random Double value: "+ randomnum); } }
出力:
上記のプログラムでは、メソッド nextDouble() を使用してランダムな double 値が生成されます。
ThreadLocalRandom クラスは、Java バージョン 1.7 で導入された特殊なタイプの Random クラスです。 ThreadLocalRandom.current().nextInt() は、乱数を生成するために使用される一般的なメソッドの 1 つです。通常、マルチスレッド アプリケーションで使用されます。
コード:
//Java Program to generate random numbers using ThreadLocalRandom Class import java.util.concurrent.ThreadLocalRandom; public class RandomNumThread { public static void main(String[] args) { //print a random double System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble()); } }
出力:
ランダムな整数は、ThreadLocalRandom クラスと Random クラスを使用して生成できます。どちらの場合も、メソッド nextInt() が同じ目的で使用されます。
コード:
//Java program to generate Random integer numbers using Random and THreadLocalRandom Class import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomInteger { public static void main(String[] args) { Random rnd=new Random(); //Create instance of Random class int randomnum1=rnd.nextInt(); //Random Integer value using Random Class int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30 int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class System.out.println("Random Integer value using Random Class: "+ randomnum1); System.out.println("Random Integer value within the range of 30: "+ randomnum2); System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3); } }
出力:
上記の例では、nextInt() メソッドの 1 つが引数として 30 を持っている場合に、3 つのランダムな整数型の数値が生成されます。そこで、乱数を生成する際、上限として 30 が設定され、下限として 0 (デフォルトの下限) が設定されます。
整数の生成と同様に、浮動小数点数はメソッド nextFloat() を使用して生成できます。このメソッドは、Random クラスと ThreadLocalRandom クラスの両方で使用できます:
コード:
//Java program to generate Random Float numbers using Random and THreadLocalRandom Class import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomFloat { public static void main(String[] args) { Random rnd=new Random(); //Create instance of Random class float randomnum1=rnd.nextFloat(); //Random Float value using Random Class float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class System.out.println("Random float value using Random Class: "+ randomnum1); System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2); } }
出力:
Java には、プログラムで使用できる関数が多数含まれています。これは、処理時間とコード行の削減に役立ちます。乱数生成は、これらの関数の一部を使用できるタスクの 1 つです。このドキュメントでは、これを実現するためのさまざまな方法について説明します。
以上がJava の乱数ジェネレーターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。