- すべてのスーパー・インタフェース:
RandomGenerator
,RandomGenerator.StreamableGenerator
- 既知のすべてのサブインタフェース:
RandomGenerator.ArbitrarilyJumpableGenerator
,RandomGenerator.LeapableGenerator
- 含まれているインタフェース:
RandomGenerator
理想的には、1つの元のRandomGenerator.JumpableGenerator
オブジェクトからの反復ジャンプによって生成されたすべてのRandomGenerator.JumpableGenerator
オブジェクトは、統計的に相互に独立しており、個別に均一です。 実際には、ある程度の近似で独立性と均一性を決める必要があります。 特に、特定の実装では、jump()
メソッドによって生成されたストリームの各ジェネレータを使用して、264またはその期間の平方根以下の数値を生成できます。 実装者は、期間が2127以上のアルゴリズムを使用することをお薦めします。
単一のジャンプ操作を実行し、内部状態の反復的なコピーとジャンプによってオリジナルから生成されるジェネレータのストリームを生成する方法も用意されています。 マルチスレッド・アプリケーションの一般的な方法は、単一のRandomGenerator.JumpableGenerator
オブジェクトを作成し、そのjump
()メソッドを1回だけ呼び出してから、結果のストリームから1つずつ、各スレッドに1つずつジェネレータをパーティション化することです。 通常、jump
()メソッドによって生成されたジェネレータでjump
()をコールすることはお薦めしません。結果は、jump
()メソッドへのコールによってすでに生成された別のジェネレータと同じジェネレータの場合があるためです。 このため、ストリーム内の実際のジェネレータ・オブジェクトもRandomGenerator.JumpableGenerator
インタフェースを実装する可能性が高い場合でも、jumps
()メソッドの戻り型はStream<RandomGenerator.JumpableGenerator>
ではなくStream<RandomGenerator>
です。
RandomGenerator.JumpableGenerator
を実装するオブジェクトは通常、暗号方式ではセキュアではありません。 セキュリティ保護を必要とするアプリケーションで使用するために安全な暗号化の施された擬似乱数ジェネレータを取得するには、代わりにSecureRandom
を使用することを検討してください。
-
ネストされたクラスのサマリー
インタフェースjava.util.random.RandomGeneratorで宣言されたネストされたクラス/インタフェース
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
-
メソッドのサマリー
修飾子と型メソッド説明copy()
内部状態がこのジェネレータ (したがって、同じ一連の操作の対象となる場合は、将来の動作は同じである必要があります)の正確なコピーである新しいジェネレータを返します。default RandomGenerator
このジェネレータをコピーし、このジェネレータを前方にジャンプしてから、コピーを返します。void
jump()
この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の大きな固定距離(通常は264以上)を前方にジャンプします。double
このジェネレータ・オブジェクトの状態サイクル内でjump
()メソッドが前方にジャンプする距離を返します。default Stream
<RandomGenerator> jumps()
RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。default Stream
<RandomGenerator> jumps
(long streamSize) RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize
数を生成するストリームを返します。name
algorithmを利用するRandomGenerator.JumpableGenerator
のインスタンスを返します。default Stream
<RandomGenerator> rngs()
RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。default Stream
<RandomGenerator> rngs
(long streamSize) RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize
数を生成するストリームを返します。インタフェースjava.util.random.RandomGeneratorで宣言されたメソッド
doubles, doubles, doubles, doubles, equiDoubles, ints, ints, ints, ints, isDeprecated, longs, longs, longs, longs, nextBoolean, nextBytes, nextDouble, nextDouble, nextDouble, nextExponential, nextFloat, nextFloat, nextFloat, nextGaussian, nextGaussian, nextInt, nextInt, nextInt, nextLong, nextLong, nextLong
-
メソッドの詳細
-
of
static RandomGenerator.JumpableGenerator of(String name) name
algorithmを利用するRandomGenerator.JumpableGenerator
のインスタンスを返します。- パラメータ:
name
- 乱数ジェネレータの名前algorithm- 戻り値:
RandomGenerator.JumpableGenerator
のインスタンス- 例外:
NullPointerException
- nameがnullである場合IllegalArgumentException
- 指定されたアルゴリズムが見つからない場合
-
copy
内部状態がこのジェネレータ (したがって、同じ一連の操作の対象となる場合は、将来の動作は同じである必要があります)の正確なコピーである新しいジェネレータを返します。- 戻り値:
- このジェネレータのコピーである新規オブジェクト
-
jump
void jump()この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の大きな固定距離(通常は264以上)を前方にジャンプします。 -
jumpDistance
double jumpDistance()このジェネレータ・オブジェクトの状態サイクル内でjump
()メソッドが前方にジャンプする距離を返します。- 戻り値:
- デフォルトのジャンプ距離(
double
値として)
-
jumps
default Stream<RandomGenerator> jumps()RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。- 実装要件:
- デフォルトの実装では、このジェネレータで
copy
()およびjump
()を繰り返し呼び出す順次ストリームが生成され、コピーはストリームによって生成されたジェネレータになります。 - 実装上のノート:
- このメソッドは、
jumps
(Long.MAX_VALUE
)と同等の方法で実装できます。 - 戻り値:
RandomGenerator
インタフェースを実装するオブジェクトのストリーム
-
jumps
default Stream<RandomGenerator> jumps(long streamSize) RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize
数を生成するストリームを返します。- 実装要件:
- デフォルトの実装では、このジェネレータで
copy
()およびjump
()を繰り返し呼び出す順次ストリームが生成され、コピーはストリームによって生成されたジェネレータになります。 - パラメータ:
streamSize
- 生成するジェネレータの数- 戻り値:
RandomGenerator
インタフェースを実装するオブジェクトのストリーム- 例外:
IllegalArgumentException
-streamSize
が0未満の場合
-
rngs
default Stream<RandomGenerator> rngs()RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。 理想的には、ストリームのジェネレータは統計的に独立しているように見えます。- 定義:
- インタフェース
RandomGenerator.StreamableGenerator
内のrngs
- 実装要件:
- デフォルトの実装では、
jumps
()がコールされます。 - 戻り値:
RandomGenerator
インタフェースを実装するオブジェクトのストリーム
-
rngs
default Stream<RandomGenerator> rngs(long streamSize) RandomGenerator
インタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize
数を生成するストリームを返します。 理想的には、ストリームのジェネレータは統計的に独立しているように見えます。- 定義:
- インタフェース
RandomGenerator.StreamableGenerator
内のrngs
- 実装要件:
- デフォルトの実装では、
jumps
(streamSize)をコールします。 - パラメータ:
streamSize
- 生成するジェネレータの数- 戻り値:
RandomGenerator
インタフェースを実装するオブジェクトのストリーム- 例外:
IllegalArgumentException
-streamSize
が0未満の場合
-
copyAndJump
default RandomGenerator copyAndJump()このジェネレータをコピーし、このジェネレータを前方にジャンプしてから、コピーを返します。- 実装要件:
- デフォルトの実装では、これをコピーしてジャンプし、コピーを返します。
- 戻り値:
- ジャンプが発生した前のこのジェネレータ・オブジェクトのコピー
-