ホームページ  >  記事  >  Java  >  Javaで乱数を生成する方法

Javaで乱数を生成する方法

青灯夜游
青灯夜游オリジナル
2018-11-21 15:10:3658037ブラウズ

Java で乱数を生成するにはどうすればよいですか?この記事では、Java で乱数を生成する方法を紹介します。困っている友人は参考にしていただければ幸いです。

Java では、いくつかの組み込みメソッドとクラスを使用して乱数を生成するために、次の 3 つのメソッドが提供されています:

1、java.util.Random クラス

2 , Math.randomメソッド:double型の乱数を生成できます。

3. ThreadLocalRandom クラス

Java が乱数の生成を実装する方法を見てみましょう。

1. java.util.Random クラス

Java ユーティリティ クラス ライブラリのクラス: java.util.Random は、さまざまな種類の乱数を生成するメソッドを提供します。

java.util.Random クラスを使用して乱数を生成するには、まずこのクラスのインスタンスを作成し、次にそのインスタンスを使用して nextInt()、nextDouble()、nextLong() などのメソッドを呼び出す必要があります。 。

java.util.Random クラスを使用すると、整数、浮動小数点数、倍精度数値、長整数、ブール オペランド、その他の型の乱数をランダムに生成できます。

メソッドにパラメータを渡して、生成される数値の範囲に上限を設定できます。たとえば、nextInt(6) は 0 ~ 5 の範囲の数値を生成します。

// 随机数生成
// 使用java.util.Random; 
import java.util.Random; 

public class generateRandom{ 

	public static void main(String args[]) 
	{ 
		// 创建随机类的实例
		Random rand = new Random(); 

		// 在0到999范围内生成随机整数
		int rand_int1 = rand.nextInt(1000); 
		int rand_int2 = rand.nextInt(1000); 

		// 输出随机整数
		System.out.println("随机整数: "+rand_int1); 
		System.out.println("随机整数: "+rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = rand.nextDouble(); 
		double rand_dub2 = rand.nextDouble(); 

		// 输出随机双精度数
		System.out.println("随机双精度数: "+rand_dub1); 
		System.out.println("随机双精度数: "+rand_dub2); 
	} 
}

実行出力:

Javaで乱数を生成する方法

2. Math.random メソッド

Math クラスにはさまざまなものが含まれていますべき乗、対数などのさまざまな数値演算を実行するメソッド。これらのメソッドの 1 つ:random() は、正の符号が付いた double の数値を返すことができます。値は 0.0 以上 1.0 未満です。つまり、値の範囲は左が閉じた状態と右が開いた間隔になります。 [0.0、1.0)。

random() メソッドによって返される値は、擬似ランダムに選択され、[0.0,1.0) の範囲内で (ほぼ) 均一に分散されます。

注: double 型の乱数のみを生成できます。

以下では、このメソッドを使用して Java コードを通じて乱数を生成する方法を紹介します:

// Math.random() 生成随机数
import java.util.*; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 随机双精度数的生成
		System.out.println("随机双精度数: " + Math.random()); 
		System.out.println("随机双精度数: " + Math.random()); 
	} 
}

実行結果:

Javaで乱数を生成する方法

##3. java.util.concurrent.ThreadLocalRandom クラス

ThreadLocalRandom クラスは Java 1.7 で導入され、複数のスレッド間の競合を解決できます。整数、倍精度、ブール値、その他の型の乱数を生成できます。

ThreadLocalRandom の主な実装の詳細:

1)、シードとして Random の AtomicLong を使用する代わりに、通常の Long を使用します。

2)、ThreadLocalRandom インスタンスを作成することはできません。このコンストラクターはプライベートであるため、その静的メソッド ThreadLocalRandom.current()

3) を使用できます。これは CPU キャッシュを認識し、8 つの長い仮想フィールドを使用して 64 ビット L1 高速キャッシュ ラインを埋めます。

以下では、このクラスを使用して、単純な Java コードを通じて乱数を生成する方法を紹介します:

// 随机数的产生
// 使用java.util.concurrent.ThreadLocalRandom类
import java.util.concurrent.ThreadLocalRandom; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 在0到999范围内生成随机整数
		int rand_int1 = ThreadLocalRandom.current().nextInt(); 
		int rand_int2 = ThreadLocalRandom.current().nextInt(); 

		// 输出随机整数
		System.out.println("Random Integers: " + rand_int1); 
		System.out.println("Random Integers: " + rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = ThreadLocalRandom.current().nextDouble(); 
		double rand_dub2 = ThreadLocalRandom.current().nextDouble(); 

		// 输出随机双精度数
		System.out.println("Random Doubles: " + rand_dub1); 
		System.out.println("Random Doubles: " + rand_dub2); 

		// 生成随机布尔值
		boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); 
		boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); 

		// 输出随机布尔值
		System.out.println("Random Booleans: " + rand_bool1); 
		System.out.println("Random Booleans: " + rand_bool2); 
	} 
}

実行出力:

Javaで乱数を生成する方法

概要: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。関連するビデオ チュートリアルの詳細については、JavaTutorial を参照してください。

以上がJavaで乱数を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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