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