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で宣言されたメソッドequiDoubles, isDeprecated, nextBoolean, nextDouble, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextFloat, nextGaussian, nextGaussian, nextInt, nextInt, nextInt, nextLong, nextLongインタフェースjava.util.random.RandomGenerator.SplittableGeneratorで宣言されたメソッドrngs, rngs
- 
コンストラクタの詳細- 
SplittableRandompublic SplittableRandom(long seed) 指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。 同じシードを使用して同じプログラムで作成されたSplittableRandomインスタンスは、同一の値のシーケンスを生成します。- パラメータ:
- seed- 初期シード
 
- 
SplittableRandompublic SplittableRandom()現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。
 
- 
- 
メソッドの詳細- 
splitpublic SplittableRandom split()可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。 ただし、単一のSplittableRandomオブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。 2つのオブジェクトの一方または両方が、split()メソッドを使用してさらに分割される場合もあります。そのような再帰的分割によって構築された一連のジェネレータすべてに、同じ統計特性が期待されます。- 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplit
- 戻り値:
- 新しいSplittableRandomインスタンス
 
- 
splitpublic SplittableRandom split(RandomGenerator.SplittableGenerator source) RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装する、この番号から分割された新しい擬似乱数ジェネレータを返します。- 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplit
- パラメータ:
- source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用される- RandomGenerator.SplittableGeneratorインスタンス。
- 戻り値:
- an object that implements the RandomGeneratorandRandomGenerator.SplittableGeneratorinterfaces
- 例外:
- NullPointerException- ソースがnullの場合
- 導入されたバージョン:
- 17
 
- 
nextLongpublic long nextLong()インタフェース:RandomGeneratorからコピーされた説明擬似乱数的に選択したlong値を返します。- 定義:
- インタフェースRandomGenerator内のnextLong
- 戻り値:
- 擬似乱数的に選択されたlong値
 
- 
nextBytespublic void nextBytes(byte[] bytes) -128 (inclusive)と127 (inclusive)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。- 定義:
- インタフェースRandomGenerator内のnextBytes
- パラメータ:
- bytes- 擬似ランダム・バイトで埋めるためのバイト配列
- 例外:
- NullPointerException- bytesがnullの場合
- 導入されたバージョン:
- 10
 
- 
splitspublic Stream<RandomGenerator.SplittableGenerator> splits()RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。 - 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplits
- 実装要件:
- デフォルトの実装では、splits(this)が起動します。
- 戻り値:
- RandomGenerator.SplittableGeneratorオブジェクトのストリーム
- 導入されたバージョン:
- 17
 
- 
splitspublic Stream<RandomGenerator.SplittableGenerator> splits(long streamSize) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。 - 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplits
- 実装要件:
- パラメータ:
- streamSize- 生成する値の数
- 戻り値:
- RandomGenerator.SplittableGeneratorオブジェクトのストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合
- 導入されたバージョン:
- 17
 
- 
splitspublic Stream<RandomGenerator.SplittableGenerator> splits(RandomGenerator.SplittableGenerator source) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。- 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplits
- 実装要件:
- パラメータ:
- source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用される- RandomGenerator.SplittableGeneratorインスタンス。
- 戻り値:
- RandomGenerator.SplittableGeneratorオブジェクトのストリーム
- 例外:
- NullPointerException- ソースがnullの場合
- 導入されたバージョン:
- 17
 
- 
splitspublic Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source) RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。- 定義:
- インタフェースRandomGenerator.SplittableGenerator内のsplits
- 実装要件:
- パラメータ:
- streamSize- 生成する値の数
- source- このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用される- RandomGenerator.SplittableGeneratorインスタンス。
- 戻り値:
- RandomGenerator.SplittableGeneratorオブジェクトのストリーム
- 例外:
- NullPointerException- ソースがnullの場合
- IllegalArgumentException-- streamSizeが0未満の場合
- 導入されたバージョン:
- 17
 
- 
intspublic IntStream ints(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。- 定義:
- インタフェースRandomGenerator内のints
- パラメータ:
- streamSize- 生成する値の数
- 戻り値:
- 擬似乱数int値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合
 
- 
intspublic IntStream ints()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。- 定義:
- インタフェースRandomGenerator内のints
- 実装上のノート:
- このメソッドは、ints(Long.MAX_VALUE)と同等であるように実装されます。
- 戻り値:
- 擬似乱数int値のストリーム
 
- 
intspublic IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のints
- パラメータ:
- streamSize- 生成する値の数
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合、または- randomNumberOriginが- randomNumberBound以上の場合
 
- 
intspublic IntStream ints(int randomNumberOrigin, int randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のints
- 実装上のノート:
- このメソッドは、ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
- パラメータ:
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
- 例外:
- IllegalArgumentException-- randomNumberOriginが- randomNumberBound以上の場合
 
- 
longspublic LongStream longs(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。- 定義:
- インタフェースRandomGenerator内のlongs
- パラメータ:
- streamSize- 生成する値の数
- 戻り値:
- 擬似乱数long値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合
 
- 
longspublic LongStream longs()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。- 定義:
- インタフェースRandomGenerator内のlongs
- 実装上のノート:
- このメソッドは、longs(Long.MAX_VALUE)と同等であるように実装されます。
- 戻り値:
- 擬似乱数long値のストリーム
 
- 
longspublic LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のlongs
- パラメータ:
- streamSize- 生成する値の数
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合、または- randomNumberOriginが- randomNumberBound以上の場合
 
- 
longspublic LongStream longs(long randomNumberOrigin, long randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のlongs
- 実装上のノート:
- このメソッドは、longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
- パラメータ:
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
- 例外:
- IllegalArgumentException-- randomNumberOriginが- randomNumberBound以上の場合
 
- 
doublespublic DoubleStream doubles(long streamSize) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。- 定義:
- インタフェースRandomGenerator内のdoubles
- パラメータ:
- streamSize- 生成する値の数
- 戻り値:
- double値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeが0未満の場合
 
- 
doublespublic DoubleStream doubles()このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。- 定義:
- インタフェースRandomGenerator内のdoubles
- 実装上のノート:
- このメソッドは、doubles(Long.MAX_VALUE)と同等であるように実装されます。
- 戻り値:
- 擬似乱数double値のストリーム
 
- 
doublespublic DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のdoubles
- パラメータ:
- streamSize- 生成する値の数
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
- 例外:
- IllegalArgumentException-- streamSizeがゼロ未満または- randomNumberOriginが有限でない場合、または- randomNumberBoundが有限でない場合、または- randomNumberOriginが- randomNumberBound以上である場合
 
- 
doublespublic DoubleStream doubles(double randomNumberOrigin, double randomNumberBound) このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。- 定義:
- インタフェースRandomGenerator内のdoubles
- 実装上のノート:
- このメソッドは、doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
- パラメータ:
- randomNumberOrigin- 各乱数値の起点(含む)
- randomNumberBound- 各乱数値の境界(含まない)
- 戻り値:
- それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
- 例外:
- IllegalArgumentException-- randomNumberOriginが有限でない場合、または- randomNumberBoundが有限でない場合、または- randomNumberOriginが- randomNumberBound以上である場合
 
 
-