java.lang.Object
java.util.SplittableRandom
- すべての実装されたインタフェース:
RandomGenerator,RandomGenerator.SplittableGenerator,RandomGenerator.StreamableGenerator
public final class SplittableRandom extends Object implements RandomGenerator, RandomGenerator.SplittableGenerator
サブタスクを生成する可能性がある(他のコンテキスト)分離されたパラレル計算で使用できる、均一な擬似乱数値(期間264)のジェネレータ。 クラス
SplittableRandomは、int、longおよびdouble型の擬似乱数を生成するメソッドをサポートします。使用方法はクラスRandomと似ていますが、次の点で異なります。
- 生成された一連の値は、乱数ジェネレータの独立性と一様性をテストするDieHarderスイートに合格します。 (最新ではバージョン3.31.1で検証されています。) これらのテストで検証されるのは特定の型と範囲のメソッドだけですが、その他についても、少なくとも近似的に同様の特性が保持されることが期待されます。 「ポイント」 (繰り返す前の一連の生成値の長さ)は264です。
-
split()メソッドは、可変状態を現在のインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。 ただし、単一のSplittableRandomオブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。 - SplittableRandomのインスタンスはスレッドセーフではありません。 これらは、スレッド間で共有するのではなく、分割するように設計されています。 たとえば、乱数を使用する
分岐/結合形式の計算には、new Subtask(aSplittableRandom.split()).fork()という形式の構築が含まれる場合があります。 - このクラスには、ランダム・ストリームを生成する追加のメソッドが用意されています。これらは、
stream.parallel()モードで使用される場合に、上記の手法を使用します。
SplittableRandomのインスタンスにはセキュアな暗号化が施されていません。 セキュリティに依存するアプリケーションでは、かわりにSecureRandomの使用を検討してください。 また、システム・プロパティjava.util.secureRandomSeedをtrueに設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。
- 導入されたバージョン:
- 1.8
-
ネストされたクラスのサマリー
インタフェースjava.util.random.RandomGeneratorで宣言されたネストされたクラス/インタフェース
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator -
コンストラクタのサマリー
コンストラクタコンストラクタ説明現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。SplittableRandom(long seed) 指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明doubles()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。doubles(double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。doubles(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。doubles(long streamSize, double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。ints()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。ints(int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。ints(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。ints(long streamSize, int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。longs()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。longs(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。longs(long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。longs(long streamSize, long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。voidnextBytes(byte[] bytes) -128 (inclusive)と127 (inclusive)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。longnextLong()擬似乱数的に選択したlong値を返します。split()可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装する、この番号から分割された新しい擬似乱数ジェネレータを返します。splits()RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。splits(long streamSize) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。splits(long streamSize, RandomGenerator.SplittableGenerator source) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェースjava.util.random.RandomGeneratorで宣言されたメソッド
isDeprecated, nextBoolean, nextDouble, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextFloat, nextGaussian, nextGaussian, nextInt, nextInt, nextInt, nextLong, nextLongインタフェースjava.util.random.RandomGenerator.SplittableGeneratorで宣言されたメソッド
rngs, rngs
-
コンストラクタの詳細
-
SplittableRandom
public SplittableRandom(long seed) 指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。 同じシードを使用して同じプログラムで作成されたSplittableRandomインスタンスは、同一の値のシーケンスを生成します。- パラメータ:
seed- 初期シード
-
SplittableRandom
public SplittableRandom()現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。
-
-
メソッドの詳細
-
split
public SplittableRandom split()可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。 ただし、単一のSplittableRandomオブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。 2つのオブジェクトの一方または両方が、split()メソッドを使用してさらに分割される場合もあります。そのような再帰的分割によって構築された一連のジェネレータすべてに、同じ統計特性が期待されます。- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplit - 戻り値:
- 新しいSplittableRandomインスタンス
-
split
public SplittableRandom split(RandomGenerator.SplittableGenerator source) RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装する、この番号から分割された新しい擬似乱数ジェネレータを返します。- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplit - パラメータ:
source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。- 戻り値:
RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装するオブジェクト- throws:
NullPointerException- ソースがnullの場合- 導入されたバージョン:
- 17
-
nextLong
public long nextLong()インタフェース:RandomGeneratorからコピーされた説明擬似乱数的に選択したlong値を返します。- 定義:
- インタフェース
RandomGenerator内のnextLong - 戻り値:
- 擬似乱数的に選択された
long値
-
nextBytes
public void nextBytes(byte[] bytes) -128 (inclusive)と127 (inclusive)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。- 定義:
- インタフェース
RandomGenerator内のnextBytes - パラメータ:
bytes- 擬似乱数バイトで埋めるためのバイト配列- throws:
NullPointerException- bytesがnullの場合- 導入されたバージョン:
- 10
-
splits
public Stream<RandomGenerator.SplittableGenerator> splits()RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。
- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplits - 実装要件:
- デフォルトの実装では、
splits(this)が起動します。 - 戻り値:
RandomGenerator.SplittableGeneratorオブジェクトのストリーム- 導入されたバージョン:
- 17
-
splits
public Stream<RandomGenerator.SplittableGenerator> splits(long streamSize) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。
- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplits - 実装要件:
- パラメータ:
streamSize- 生成する値の数- 戻り値:
RandomGenerator.SplittableGeneratorオブジェクトのストリーム- throws:
IllegalArgumentException-streamSizeが0未満の場合- 導入されたバージョン:
- 17
-
splits
public Stream<RandomGenerator.SplittableGenerator> splits(RandomGenerator.SplittableGenerator source) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplits - 実装要件:
- パラメータ:
source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。- 戻り値:
RandomGenerator.SplittableGeneratorオブジェクトのストリーム- throws:
NullPointerException- ソースがnullの場合- 導入されたバージョン:
- 17
-
splits
public Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。- 定義:
- インタフェース
RandomGenerator.SplittableGenerator内のsplits - 実装要件:
- パラメータ:
streamSize- 生成する値の数source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。- 戻り値:
RandomGenerator.SplittableGeneratorオブジェクトのストリーム- throws:
NullPointerException- ソースがnullの場合IllegalArgumentException-streamSizeが0未満の場合- 導入されたバージョン:
- 17
-
ints
public IntStream ints(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。- 定義:
- インタフェース
RandomGenerator内のints - パラメータ:
streamSize- 生成する値の数- 戻り値:
- 擬似乱数
int値のストリーム - throws:
IllegalArgumentException-streamSizeが0未満の場合
-
ints
public IntStream ints()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。- 定義:
- インタフェース
RandomGenerator内のints - 実装上のノート:
- このメソッドは、
ints(Long.MAX_VALUE)と同等であるように実装されます。 - 戻り値:
- 擬似乱数
int値のストリーム
-
ints
public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のints - パラメータ:
streamSize- 生成する値の数randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
int値のストリーム - throws:
IllegalArgumentException-streamSizeが0未満の場合、またはrandomNumberOriginがrandomNumberBound以上の場合
-
ints
public IntStream ints(int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のints - 実装上のノート:
- このメソッドは、
ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。 - パラメータ:
randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
int値のストリーム - throws:
IllegalArgumentException-randomNumberOriginがrandomNumberBound以上の場合
-
longs
public LongStream longs(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。- 定義:
- インタフェース
RandomGenerator内のlongs - パラメータ:
streamSize- 生成する値の数- 戻り値:
- 擬似乱数
long値のストリーム - throws:
IllegalArgumentException-streamSizeが0未満の場合
-
longs
public LongStream longs()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。- 定義:
- インタフェース
RandomGenerator内のlongs - 実装上のノート:
- このメソッドは、
longs(Long.MAX_VALUE)と同等であるように実装されます。 - 戻り値:
- 擬似乱数
long値のストリーム
-
longs
public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のlongs - パラメータ:
streamSize- 生成する値の数randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
long値のストリーム - throws:
IllegalArgumentException-streamSizeが0未満の場合、またはrandomNumberOriginがrandomNumberBound以上の場合
-
longs
public LongStream longs(long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のlongs - 実装上のノート:
- このメソッドは、
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。 - パラメータ:
randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数
long値のストリーム - throws:
IllegalArgumentException-randomNumberOriginがrandomNumberBound以上の場合
-
doubles
public DoubleStream doubles(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。- 定義:
- インタフェース
RandomGenerator内のdoubles - パラメータ:
streamSize- 生成する値の数- 戻り値:
double値のストリーム- throws:
IllegalArgumentException-streamSizeが0未満の場合
-
doubles
public DoubleStream doubles()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。- 定義:
- インタフェース
RandomGenerator内のdoubles - 実装上のノート:
- このメソッドは、
doubles(Long.MAX_VALUE)と同等であるように実装されます。 - 戻り値:
- 擬似乱数
double値のストリーム
-
doubles
public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のdoubles - パラメータ:
streamSize- 生成する値の数randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数
double値のストリーム - throws:
IllegalArgumentException-streamSizeが0未満の場合、またはrandomNumberOriginがrandomNumberBound以上の場合
-
doubles
public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェース
RandomGenerator内のdoubles - 実装上のノート:
- このメソッドは、
doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。 - パラメータ:
randomNumberOrigin- 各乱数値の起点(含む)randomNumberBound- 各乱数値の境界(含まない)- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数
double値のストリーム - throws:
IllegalArgumentException-randomNumberOriginがrandomNumberBound以上の場合
-