インタフェースRandomGenerator.ArbitrarilyJumpableGenerator

すべてのスーパー・インタフェース:
RandomGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.StreamableGenerator
含まれているインタフェース:
RandomGenerator

public static interface RandomGenerator.ArbitrarilyJumpableGenerator extends RandomGenerator.LeapableGenerator
このインタフェースは、擬似乱数シーケンスを生成し、任意の量で簡単にjumpを状態サイクルの遠いポイントに送ることができるオブジェクトに共通のプロトコルを提供するように設計されています。

理想的には、1つの元のRandomGenerator.ArbitrarilyJumpableGeneratorオブジェクトからの反復ジャンプによって生成されたすべてのRandomGenerator.ArbitrarilyJumpableGeneratorオブジェクトは、統計的に相互に独立しており、個別に均一です(状態サイクルの重複する部分を走査しない場合)。 実際には、ある程度の近似で独立性と均一性を決める必要があります。 特に、特定の実装では、jump()メソッドによって生成されたストリーム内の各ジェネレータを使用して、指定したジャンプ距離を超える数値が生成されると想定できます。 実装者は、期間が2127以上のアルゴリズムを使用することをお薦めします。

多くのアプリケーションでは、2の2乗または2の少数の乗で飛び越えるのが適していますが、この2の累乗はlong値として表さない場合があります。 BigInteger値がジャンプ距離として使用されないように、かわりにdouble値が使用されます。

単一のジャンプ操作を実行し、内部状態の反復的なコピーとジャンプによってオリジナルから生成されるジェネレータのストリームを生成する方法も用意されています。 マルチスレッド・アプリケーションの一般的な方法は、単一のRandomGenerator.ArbitrarilyJumpableGeneratorオブジェクトを作成し、そのjump()メソッドを1回のみ呼び出してから、結果のストリームのジェネレータを1つずつ各スレッドに分離することです。 ただし、生成された各ジェネレータにはRandomGenerator.ArbitrarilyJumpableGeneratorタイプもあります。注意しながら、さまざまなジャンプ距離を使用して、さまざまな方法で状態サイクル全体を走査できます。

RandomGenerator.ArbitrarilyJumpableGeneratorを実装するオブジェクトは通常、暗号方式ではセキュアではありません。 かわりに、SecureRandomを使用して、セキュリティ依存アプリケーションで使用する暗号学的にセキュアな疑似乱数ジェネレータを取得することを検討してください。

導入されたバージョン:
17
  • ネストされたクラスのサマリー

    インタフェースで宣言されたネストされたクラス/インタフェース RandomGenerator

    RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator
    修飾子と型
    インタフェース
    説明
    static interface 
    このインタフェースは、擬似乱数シーケンスを生成し、任意の量で簡単にjumpを状態サイクルの遠いポイントに送ることができるオブジェクトに共通のプロトコルを提供するように設計されています。
    static interface 
    このインタフェースは、擬似乱数値を生成するオブジェクトに共通のプロトコルを提供するように設計されており、状態サイクル内の離れた場所に適度な量(たとえば264)で簡単に前方にジャンプできます。
    static interface 
    このインタフェースは、擬似乱数シーケンスを生成するオブジェクトに共通のプロトコルを提供するように設計されており、その状態サイクルの非常に遠いポイントに簡単に前方にジャンプできるだけでなく、飛躍(たとえば、2128)することもできます。
    static interface 
    このインタフェースは、擬似乱数値の順序を生成するオブジェクトに共通プロトコルを提供するように設計されており、それぞれ(元のものと新しいもの)という2つのオブジェクトに「分割」で、同じプロトコル(したがって、無期限に再帰的に分割できます)に従うことができます。
    static interface 
    RandomGenerator.StreamableGeneratorインタフェースは、RandomGeneratorインタフェースを補強して、RandomGeneratorオブジェクトのストリームを返すメソッドを提供します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    内部状態がこのジェネレータ (したがって、同じ一連の操作の対象となる場合は、将来の動作は同じである必要があります)の正確なコピーである新しいジェネレータを返します。
    copyAndJump(double distance)
    このジェネレータをコピーし、このジェネレータを前方にジャンプしてから、コピーを返します。
    default void
    この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の大きな固定距離(通常は264以上)を前方にジャンプします。
    void
    jump(double distance)
    この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の指定された距離を前方にジャンプします。
    void
    jumpPowerOfTwo(int logDistance)
    この擬似乱数ジェネレータの状態を変更して、状態サイクル内の2logDistanceと同じ距離を前方にジャンプします。
    jumps(double distance)
    新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。それぞれは、RandomGenerator.ArbitrarilyJumpableGeneratorインタフェースを実装しており、指定されたジャンプ距離の異なる整数倍数でこのジェネレータのコピーをジャンプすることで生成されます。
    jumps(long streamSize, double distance)
    指定されたstreamSize数の新しい擬似乱数ジェネレータを生成するストリームを返します。それぞれがRandomGenerator.ArbitrarilyJumpableGeneratorインタフェースを実装しており、指定されたジャンプ距離の異なる整数倍数でこのジェネレータのコピーをジャンプすることで生成されます。
    default void
    この擬似乱数ジェネレータの状態を変更して、状態サイクル内の非常に大きな固定距離の(通常は2128以上)を飛び越えます。
    of(String name)
    name algorithmを利用するRandomGenerator.ArbitrarilyJumpableGeneratorのインスタンスを返します。

    インタフェースで宣言されたメソッド 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
    修飾子と型
    メソッド
    説明
    default DoubleStream
    擬似乱数的に選択されたdouble値の実質的に無制限のストリームを返します。
    default DoubleStream
    doubles(double randomNumberOrigin, double randomNumberBound)
    擬似乱数的に選択したdouble値の実質的に無制限のストリームを返します。各値は、指定された起点(包含)と指定された境界(除外)の間です。
    default DoubleStream
    doubles(long streamSize)
    指定されたstreamSize数の擬似乱数的に選択したdouble値を生成するストリームを返します。
    default DoubleStream
    doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
    擬似乱数的に選択したdouble値のstreamSize数を生成するストリームを返します。各値は、指定された起点(包含)と、指定された境界(除外)の間です。
    default DoubleStream
    equiDoubles(double left, double right, boolean isLeftIncluded, boolean isRightIncluded)
    疑似ランダムに選択されたdouble値の事実上無制限のストリームを返します。各値は、指定されたleft境界と指定されたright境界の間にあります。
    default IntStream
    擬似乱数的に選択されたint値の実質的に無制限のストリームを返します。
    default IntStream
    ints(int randomNumberOrigin, int randomNumberBound)
    擬似乱数的に選択したint値の実質的に無制限のストリームを返します。各値は、指定された起点(包含)と指定された境界(除外)の間です。
    default IntStream
    ints(long streamSize)
    指定されたstreamSize数の擬似乱数的に選択したint値を生成するストリームを返します。
    default IntStream
    ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
    指定された擬似乱数的に選択したint値のstreamSize数を生成するストリームを返します。各値は、指定された起点(包含)と、指定された境界(除外)の間です。
    default boolean
    RandomGenerator (algorithm)の実装が非推奨としてマークされている場合はtrueを返します。
    default LongStream
    擬似乱数的に選択されたlong値の実質的に無制限のストリームを返します。
    default LongStream
    longs(long streamSize)
    指定されたstreamSize数の擬似乱数的に選択したlong値を生成するストリームを返します。
    default LongStream
    longs(long randomNumberOrigin, long randomNumberBound)
    擬似乱数的に選択したlong値の実質的に無制限のストリームを返します。各値は、指定された起点(包含)と指定された境界(除外)の間です。
    default LongStream
    longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
    擬似乱数的に選択したlong値のstreamSize数を生成するストリームを返します。各値は、指定された起点(包含)と、指定された境界(除外)の間です。
    default boolean
    擬似乱数的に選択したboolean値を返します。
    default void
    nextBytes(byte[] bytes)
    -128 (包含)と127 (包含)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。
    default double
    0 (これを含む)から1 (これを含まない)までの、擬似乱数のdouble値を返します。
    default double
    nextDouble(double bound)
    ゼロ(包含)と指定した境界(除外)の間の擬似乱数的に選択したdouble値を返します。
    default double
    nextDouble(double origin, double bound)
    指定された起点(包含)と指定された境界(除外)の間の擬似乱数的に選択したdouble値を返します。
    default double
    平均が1である指数分布から擬似乱数的に選択された、負でないdouble値を返します。
    default float
    0(これを含む)から1(これを含まない)までの範囲で、擬似乱数のfloat値を返します。
    default float
    nextFloat(float bound)
    ゼロ(包含)と指定したバインド(除外)の間の擬似乱数的に選択したfloat値を返します。
    default float
    nextFloat(float origin, float bound)
    指定された起点(包含)と指定された境界(除外)の間の擬似乱数的に選択したfloat値を返します。
    default double
    平均が0で、標準偏差が1であるガウス(正規)分布から擬似乱数的に選択されたdouble値を返します。
    default double
    nextGaussian(double mean, double stddev)
    ガウス(正規)分布から擬似乱数的に選択されたdouble値を、引数で指定された平均偏差および標準偏差で返します。
    default int
    擬似乱数的に選択したint値を返します。
    default int
    nextInt(int bound)
    ゼロ(包含)と指定した境界(除外)の間の擬似乱数的に選択したint値を返します。
    default int
    nextInt(int origin, int bound)
    指定された起点(包含)と指定された境界(除外)の間の擬似乱数的に選択したint値を返します。
    long
    擬似乱数的に選択したlong値を返します。
    default long
    nextLong(long bound)
    ゼロ(包含)と指定した境界(除外)の間の擬似乱数的に選択したlong値を返します。
    default long
    nextLong(long origin, long bound)
    指定された起点(包含)と指定された境界(除外)の間の擬似乱数的に選択したlong値を返します。

    インタフェースで宣言されたメソッド RandomGenerator.JumpableGenerator

    copyAndJump, jumpDistance, jumps, jumps, rngs, rngs
    修飾子と型
    メソッド
    説明
    このジェネレータをコピーし、このジェネレータを前方にジャンプしてから、コピーを返します。
    double
    このジェネレータ・オブジェクトの状態サイクル内でjump()メソッドが前方にジャンプする距離を返します。
    RandomGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。
    jumps(long streamSize)
    RandomGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。
    RandomGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。
    rngs(long streamSize)
    RandomGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。

    インタフェースで宣言されたメソッド RandomGenerator.LeapableGenerator

    copyAndLeap, leapDistance, leaps, leaps
    修飾子と型
    メソッド
    説明
    このジェネレータをコピーし、このジェネレータを前方に傾け、コピーを返します。
    double
    このジェネレータ・オブジェクトの状態サイクル内でleap()メソッドが前方に飛ぶ距離を返します。
    RandomGenerator.JumpableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。
    leaps(long streamSize)
    RandomGenerator.JumpableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。
  • メソッドの詳細

    • of

      name algorithmを利用するRandomGenerator.ArbitrarilyJumpableGeneratorのインスタンスを返します。
      パラメータ:
      name - 乱数ジェネレータの名前algorithm
      戻り値:
      RandomGenerator.ArbitrarilyJumpableGeneratorのインスタンス
      スロー:
      NullPointerException - nameがnullである場合
      IllegalArgumentException - 指定されたアルゴリズムが見つからない場合
    • copy

      内部状態がこのジェネレータ (したがって、同じ一連の操作の対象となる場合は、将来の動作は同じである必要があります)の正確なコピーである新しいジェネレータを返します。
      定義:
      インタフェースRandomGenerator.JumpableGenerator内のcopy
      定義:
      インタフェースRandomGenerator.LeapableGenerator内のcopy
      戻り値:
      このジェネレータのコピーである新規オブジェクト
    • jumpPowerOfTwo

      void jumpPowerOfTwo(int logDistance)
      この擬似乱数ジェネレータの状態を変更して、状態サイクル内の2logDistanceと同じ距離を前方にジャンプします。
      パラメータ:
      logDistance - 状態サイクル内でジャンプする距離のbase-2対数
      スロー:
      IllegalArgumentException - logDistanceが2logDistanceがこのジェネレータの期間より大きい場合
    • jump

      void jump(double distance)
      この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の指定された距離を前方にジャンプします。
      パラメータ:
      distance - 状態サイクル内でジャンプする距離
      スロー:
      IllegalArgumentException - distanceが0.0以下の場合、またはこのジェネレータの期間より大きい場合
    • jump

      default void jump()
      この擬似乱数ジェネレータの状態を変更して、その状態サイクル内の大きな固定距離(通常は264以上)を前方にジャンプします。 使用距離は、メソッドjumpDistance()によって返される距離です。
      定義:
      インタフェースRandomGenerator.JumpableGenerator内のjump
      実装要件:
      デフォルトの実装では、jump(jumpDistance()が起動します。
    • jumps

      default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(double distance)
      新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。それぞれは、RandomGenerator.ArbitrarilyJumpableGeneratorインタフェースを実装しており、指定されたジャンプ距離の異なる整数倍数でこのジェネレータのコピーをジャンプすることで生成されます。
      実装要件:
      デフォルトの実装は、jumps (Long.MAX_VALUE)と同等です。
      パラメータ:
      distance - 状態サイクル内でジャンプする距離
      戻り値:
      RandomGeneratorインタフェースを実装するオブジェクトのストリーム
      スロー:
      IllegalArgumentException - distanceが0.0以下の場合、またはこのジェネレータの期間より大きい場合
    • jumps

      default Stream<RandomGenerator.ArbitrarilyJumpableGenerator> jumps(long streamSize, double distance)
      指定されたstreamSize数の新しい擬似乱数ジェネレータを生成するストリームを返します。それぞれがRandomGenerator.ArbitrarilyJumpableGeneratorインタフェースを実装しており、指定されたジャンプ距離の異なる整数倍数でこのジェネレータのコピーをジャンプすることで生成されます。
      実装要件:
      デフォルトの実装は、jumps(distance).limit(streamSize)と同等です。
      パラメータ:
      streamSize - 生成するジェネレータの数
      distance - 状態サイクル内でジャンプする距離
      戻り値:
      RandomGeneratorインタフェースを実装するオブジェクトのストリーム
      スロー:
      IllegalArgumentException - streamSizeが0未満の場合、またはdistanceが0.0以下の場合、またはこのジェネレータの期間より大きい場合
    • leap

      default void leap()
      この擬似乱数ジェネレータの状態を変更して、状態サイクル内の非常に大きな固定距離の(通常は2128以上)を飛び越えます。 使用距離は、メソッドleapDistance()によって返される距離です。
      定義:
      インタフェースRandomGenerator.LeapableGenerator内のleap
    • copyAndJump

      default RandomGenerator.ArbitrarilyJumpableGenerator copyAndJump(double distance)
      このジェネレータをコピーし、このジェネレータを前方にジャンプしてから、コピーを返します。
      実装要件:
      デフォルトの実装では、これをjumps(distance)にコピーしてから、コピーを返します。
      パラメータ:
      distance - 状態サイクル内でジャンプする距離
      戻り値:
      ジャンプが発生した前のこのジェネレータ・オブジェクトのコピー
      スロー:
      IllegalArgumentException - distanceが0.0以下の場合、またはこのジェネレータの期間より大きい場合