ホームページ  >  記事  >  Java  >  Java の乱数ジェネレーター

Java の乱数ジェネレーター

WBOY
WBOYオリジナル
2024-08-30 16:27:17854ブラウズ

乱数は、ボード ゲーム用のサイコロやギャンブル プログラムなどのアプリケーションの作成によく使用されます。通常、乱数の生成には時間がかかります。しかし、Java プログラミング言語では、これを 3 つの方法で実現できます。これらについては、以下の「Java の乱数生成関数」セクションで説明します。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

Java の乱数生成関数

Java では、次の 3 つの方法を使用して乱数を生成できます。

  • Math.random メソッド
  • java.util.Random クラス
  • ThreadLocalRandomクラス

1. Math.random() メソッド

Java Math クラスは、対数、平均、べき乗などの計算を行うためのメソッドを多数提供しています。random() は、0.0 から 1.0 の範囲内の正の double 値を返すメソッドの 1 つです。0.0 はは包括的であり、1.0 は排他的です。このメソッドは、パラメーターを使用しても使用しなくても使用できます。パラメータが指定されている場合、生成される乱数は指定されたパラメータの範囲内になります。

例 #1

コード:

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);
}
}

出力:

Java の乱数ジェネレーター

上記の例では、乱数は Math.random() メソッドを使用して 2 つの方法で生成されます。メイン メソッド内で直接適用する方法と、オブジェクトを使用して Math.random() を含むメソッドを呼び出す方法です。  上の説明でも述べたように、0.0から1.0の範囲で2つの乱数が生成されていることがわかります。

パラメータの範囲内で乱数を生成するために使用される一般的な式を以下に示します。

Math.random()* (( maxvalue – minvalue ) +1 ) + minvalue

例 #2

ここで、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 の乱数ジェネレーター

2. java.util.Random クラス

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);
}
}

出力:

Java の乱数ジェネレーター

上記のプログラムでは、メソッド nextDouble() を使用してランダムな double 値が生成されます。

3. ThreadLocalRandom クラス

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());
}
}

出力:

Java の乱数ジェネレーター

整数の生成

ランダムな整数は、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);
}
}

出力:

Java の乱数ジェネレーター

上記の例では、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 の乱数ジェネレーター

結論 – Java の乱数ジェネレーター

Java には、プログラムで使用できる関数が多数含まれています。これは、処理時間とコード行の削減に役立ちます。乱数生成は、これらの関数の一部を使用できるタスクの 1 つです。このドキュメントでは、これを実現するためのさまざまな方法について説明します。

以上がJava の乱数ジェネレーターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javaの強い数次の記事:Javaの強い数