public final class SplittableRandom extends Object
SplittableRandom
は、int
、long
およびdouble
型の擬似乱数を生成するメソッドをサポートします。使用方法はクラスRandom
と似ていますが、次の点で異なります。
split()
メソッドは、可変状態を現在のインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。ただし、単一のSplittableRandom
オブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。 分岐/結合形式
の計算には、new Subtask(aSplittableRandom.split()).fork()
という形式の構築が含まれる場合があります。
stream.parallel()
モードで使用される場合に、上記の手法を使用します。SplittableRandom
のインスタンスにはセキュアな暗号化が施されていません。セキュリティに依存するアプリケーションでは、かわりにSecureRandom
の使用を検討してください。また、システム・プロパティjava.util.secureRandomSeed
をtrue
に設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。
コンストラクタと説明 |
---|
SplittableRandom()
現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。
|
SplittableRandom(long seed)
指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
DoubleStream |
doubles()
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
double 値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。 |
DoubleStream |
doubles(double randomNumberOrigin, double randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
double 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
DoubleStream |
doubles(long streamSize)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数double 値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。 |
DoubleStream |
doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数double 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
IntStream |
ints()
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
int 値を生成するストリームを返します。 |
IntStream |
ints(int randomNumberOrigin, int randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
int 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
IntStream |
ints(long streamSize)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数int 値を生成するストリームを返します。 |
IntStream |
ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数int 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
LongStream |
longs()
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
long 値を生成するストリームを返します。 |
LongStream |
longs(long streamSize)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数long 値を生成するストリームを返します。 |
LongStream |
longs(long randomNumberOrigin, long randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数
long 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
LongStream |
longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、
streamSize で指定された数の擬似乱数long 値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。 |
boolean |
nextBoolean()
擬似乱数の
boolean 値を返します。 |
double |
nextDouble()
0 (これを含む)から1 (これを含まない)までの、擬似乱数の
double 値を返します。 |
double |
nextDouble(double bound)
0.0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数の
double 値を返します。 |
double |
nextDouble(double origin, double bound)
指定された起点(これを含む)から限界(これを含まない)までの範囲で、擬似乱数の
double 値を返します。 |
int |
nextInt()
擬似乱数の
int 値を返します。 |
int |
nextInt(int bound)
0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数の
int 値を返します。 |
int |
nextInt(int origin, int bound)
指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数の
int 値を返します。 |
long |
nextLong()
擬似乱数の
long 値を返します。 |
long |
nextLong(long bound)
0 (これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数の
long 値を返します。 |
long |
nextLong(long origin, long bound)
指定された起点(これを含む)から指定された限界(これを含まない)までの範囲で、擬似乱数の
long 値を返します。 |
SplittableRandom |
split()
可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。
|
public SplittableRandom(long seed)
seed
- 初期シードpublic SplittableRandom()
public SplittableRandom split()
split()
メソッドを使用してさらに分割される場合もあります。そのような再帰的分割によって構築された一連のジェネレータすべてに、同じ統計特性が期待されます。public int nextInt()
int
値を返します。int
値public int nextInt(int bound)
int
値を返します。bound
- 上限(含まない)。正の値でなければならないint
値IllegalArgumentException
- bound
が正でない場合public int nextInt(int origin, int bound)
int
値を返します。origin
- 返される最小の値bound
- 上限(含まない)int
値IllegalArgumentException
- origin
がbound
より大きいか等しい場合public long nextLong()
long
値を返します。long
値public long nextLong(long bound)
long
値を返します。bound
- 上限(含まない)。正の値でなければならないlong
値IllegalArgumentException
- bound
が正でない場合public long nextLong(long origin, long bound)
long
値を返します。origin
- 返される最小の値bound
- 上限(含まない)long
値IllegalArgumentException
- origin
がbound
より大きいか等しい場合public double nextDouble()
double
値を返します。double
値public double nextDouble(double bound)
double
値を返します。bound
- 上限(含まない)。正の値でなければならないdouble
値IllegalArgumentException
- bound
が正でない場合public double nextDouble(double origin, double bound)
double
値を返します。origin
- 返される最小の値bound
- 上限(含まない)double
値IllegalArgumentException
- origin
がbound
より大きいか等しい場合public boolean nextBoolean()
boolean
値を返します。boolean
値public IntStream ints(long streamSize)
streamSize
で指定された数の擬似乱数int
値を生成するストリームを返します。streamSize
- 生成する値の数int
値のストリームIllegalArgumentException
- streamSize
が0未満の場合public IntStream ints()
int
値を生成するストリームを返します。ints(Long.MAX_VALUE)
と同等であるように実装されます。int
値のストリームpublic IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
streamSize
で指定された数の擬似乱数int
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)int
値のストリームIllegalArgumentException
- streamSize
が0未満の場合、またはrandomNumberOrigin
がrandomNumberBound
以上の場合public IntStream ints(int randomNumberOrigin, int randomNumberBound)
int
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)int
値のストリームIllegalArgumentException
- randomNumberOrigin
がrandomNumberBound
以上の場合public LongStream longs(long streamSize)
streamSize
で指定された数の擬似乱数long
値を生成するストリームを返します。streamSize
- 生成する値の数long
値のストリームIllegalArgumentException
- streamSize
が0未満の場合public LongStream longs()
long
値を生成するストリームを返します。longs(Long.MAX_VALUE)
と同等であるように実装されます。long
値のストリームpublic LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
streamSize
で指定された数の擬似乱数long
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)long
値のストリームIllegalArgumentException
- streamSize
が0未満の場合、またはrandomNumberOrigin
がrandomNumberBound
以上の場合public LongStream longs(long randomNumberOrigin, long randomNumberBound)
long
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)long
値のストリームIllegalArgumentException
- randomNumberOrigin
がrandomNumberBound
以上の場合public DoubleStream doubles(long streamSize)
streamSize
で指定された数の擬似乱数double
値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。streamSize
- 生成する値の数double
値のストリームIllegalArgumentException
- streamSize
が0未満の場合public DoubleStream doubles()
double
値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。doubles(Long.MAX_VALUE)
と同等であるように実装されます。double
値のストリームpublic DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
streamSize
で指定された数の擬似乱数double
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。streamSize
- 生成する値の数randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)double
値のストリームIllegalArgumentException
- streamSize
が0未満の場合IllegalArgumentException
- randomNumberOrigin
がrandomNumberBound
以上の場合public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
double
値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)
と同等であるように実装されます。randomNumberOrigin
- 各乱数値の起点(含む)randomNumberBound
- 各乱数値の境界(含まない)double
値のストリームIllegalArgumentException
- randomNumberOrigin
がrandomNumberBound
以上の場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.