モジュール java.base
パッケージ java.util

クラスSplittableRandom

java.lang.Object
java.util.SplittableRandom
すべての実装されたインタフェース:
RandomGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator

public final class SplittableRandom extends Object implements RandomGenerator, RandomGenerator.SplittableGenerator
サブタスクを生成する可能性がある(他のコンテキスト)分離されたパラレル計算で使用できる、均一な擬似乱数値(期間264)のジェネレータ。 クラスSplittableRandomは、intlongおよびdouble型の擬似乱数を生成するメソッドをサポートします。使用方法はクラスRandomと似ていますが、次の点で異なります。
  • 生成された一連の値は、乱数ジェネレータの独立性と一様性をテストするDieHarderスイートに合格します。 (最新ではバージョン3.31.1で検証されています。) これらのテストで検証されるのは特定の型と範囲のメソッドだけですが、その他についても、少なくとも近似的に同様の特性が保持されることが期待されます。 「ポイント」 (繰り返す前の一連の生成値の長さ)は264です。
  • split()メソッドは、可変状態を現在のインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。 ただし、単一の SplittableRandomオブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。
  • SplittableRandomのインスタンスはスレッドセーフではありません これらは、スレッド間で共有するのではなく、分割するように設計されています。 たとえば、乱数を使用する分岐/結合形式の計算には、new Subtask(aSplittableRandom.split()).fork()という形式の構築が含まれる場合があります。
  • このクラスには、ランダム・ストリームを生成する追加のメソッドが用意されています。これらは、 stream.parallel()モードで使用される場合に、上記の手法を使用します。

SplittableRandomのインスタンスにはセキュアな暗号化が施されていません。 セキュリティに依存するアプリケーションでは、かわりにSecureRandomの使用を検討してください。 また、システム・プロパティjava.util.secureRandomSeedtrueに設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。

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

  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。
    SplittableRandom(long seed)
    指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 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値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。
    ints(int randomNumberOrigin, int randomNumberBound)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
    ints(long streamSize)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。
    ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 long値を生成するストリームを返します。
    longs(long streamSize)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。
    longs(long randomNumberOrigin, long randomNumberBound)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
    longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
    このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
    void
    nextBytes(byte[] bytes)
    -128 (inclusive)と127 (inclusive)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。
    long
    擬似乱数的に選択したlong値を返します。
    可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。
    RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装する、この番号から分割された新しい擬似乱数ジェネレータを返します。
    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.SplittableGeneratorで宣言されたメソッド

    rngs, rngs
  • コンストラクタの詳細

    • SplittableRandom

      public SplittableRandom(long seed)
      指定された初期シードを使用して新しいSplittableRandomインスタンスを作成します。 同じシードを使用して同じプログラムで作成されたSplittableRandomインスタンスは、同一の値のシーケンスを生成します。
      パラメータ:
      seed - 初期シード
    • SplittableRandom

      public SplittableRandom()
      現在のプログラムに含まれる他のインスタンスの値とは統計的に独立し、プログラムを起動するたびに異なる可能性がある(通常は異なる)値のシーケンスを生成する可能性が高い、新しいSplittableRandomインスタンスを作成します。
  • メソッドの詳細

    • split

      public SplittableRandom split()
      可変状態をこのインスタンスと共有しない新しいSplittableRandomインスタンスを構築して返します。 ただし、単一のSplittableRandomオブジェクトを使用して単一のスレッドで同量の値が生成された場合と同様に、これら2つのオブジェクトによって共同で生成された値は同じ統計特性を持つ可能性が非常に高くなります。 2つのオブジェクトの一方または両方が、split()メソッドを使用してさらに分割される場合もあります。そのような再帰的分割によって構築された一連のジェネレータすべてに、同じ統計特性が期待されます。
      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplit
      戻り値:
      新しいSplittableRandomインスタンス
    • split

      RandomGeneratorおよびRandomGenerator.SplittableGeneratorインタフェースを実装する、この番号から分割された新しい擬似乱数ジェネレータを返します。
      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplit
      パラメータ:
      source - このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。
      戻り値:
      an object that implements the RandomGenerator and RandomGenerator.SplittableGenerator interfaces
      例外:
      NullPointerException - sourceがnullである場合
      導入されたバージョン:
      17
    • nextLong

      public long nextLong()
      インタフェース: RandomGeneratorからコピーされた説明
      擬似乱数的に選択したlong値を返します。
      定義:
      インタフェースRandomGenerator内のnextLong
      戻り値:
      擬似乱数的に選択されたlong
    • nextBytes

      public void nextBytes(byte[] bytes)
      -128 (inclusive)と127 (inclusive)の間の値範囲から擬似乱数的に選択された一様なバイト値が生成されたユーザー指定のバイト配列になります。
      定義:
      インタフェースRandomGenerator内のnextBytes
      パラメータ:
      bytes - 擬似乱数バイトで埋めるためのバイト配列
      例外:
      NullPointerException - bytesがnullの場合
      導入されたバージョン:
      10
    • splits

      RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。

      この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。

      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplits
      実装要件:
      デフォルトの実装では、splits(this)が起動します。
      戻り値:
      RandomGenerator.SplittableGeneratorオブジェクトのストリーム
      導入されたバージョン:
      17
    • splits

      public Stream<RandomGenerator.SplittableGenerator> splits(long streamSize)
      RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。

      この擬似乱数ジェネレータは、新しい状態の初期化に使用される擬似乱数ビットのソースとして使用できます。

      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplits
      実装要件:
      パラメータ:
      streamSize - 生成する値の数
      戻り値:
      RandomGenerator.SplittableGeneratorオブジェクトのストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合
      導入されたバージョン:
      17
    • splits

      RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの実質的に無制限のストリームを返します。
      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplits
      実装要件:
      パラメータ:
      source - このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。
      戻り値:
      RandomGenerator.SplittableGeneratorオブジェクトのストリーム
      例外:
      NullPointerException - sourceがnullである場合
      導入されたバージョン:
      17
    • splits

      RandomGenerator.SplittableGeneratorインタフェースを実装する新しい擬似乱数ジェネレータの特定のstreamSize数を生成するストリームを返します。
      定義:
      インタフェースRandomGenerator.SplittableGenerator内のsplits
      実装要件:
      パラメータ:
      streamSize - 生成する値の数
      source - このインスタンスのかわりに、新しいインスタンスの状態を初期化するために使用される擬似乱数・ビットのソースとして使用されるRandomGenerator.SplittableGeneratorインスタンス。
      戻り値:
      RandomGenerator.SplittableGeneratorオブジェクトのストリーム
      例外:
      NullPointerException - sourceがnullである場合
      IllegalArgumentException - streamSizeが0未満の場合
      導入されたバージョン:
      17
    • ints

      public IntStream ints(long streamSize)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。
      定義:
      インタフェースRandomGenerator内のints
      パラメータ:
      streamSize - 生成する値の数
      戻り値:
      擬似乱数int値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合
    • ints

      public IntStream ints()
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数int値を生成するストリームを返します。
      定義:
      インタフェースRandomGenerator内のints
      実装上のノート:
      このメソッドは、 ints(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数int値のストリーム
    • ints

      public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のints
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
    • ints

      public IntStream ints(int randomNumberOrigin, int randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 int値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のints
      実装上のノート:
      このメソッドは、 ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数int値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合
    • longs

      public LongStream longs(long streamSize)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。
      定義:
      インタフェースRandomGenerator内のlongs
      パラメータ:
      streamSize - 生成する値の数
      戻り値:
      擬似乱数long値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合
    • longs

      public LongStream longs()
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 long値を生成するストリームを返します。
      定義:
      インタフェースRandomGenerator内のlongs
      実装上のノート:
      このメソッドは、 longs(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数long値のストリーム
    • longs

      public LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のlongs
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
    • longs

      public LongStream longs(long randomNumberOrigin, long randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 long値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のlongs
      実装上のノート:
      このメソッドは、 longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と境界(含まない)が指定された、擬似乱数long値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合
    • doubles

      public DoubleStream doubles(long streamSize)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。
      定義:
      インタフェースRandomGenerator内のdoubles
      パラメータ:
      streamSize - 生成する値の数
      戻り値:
      double値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合
    • doubles

      public DoubleStream doubles()
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 double値を生成するストリームを返します。各値は、0 (これを含む)と1 (これを含まない)の間にあります。
      定義:
      インタフェースRandomGenerator内のdoubles
      実装上のノート:
      このメソッドは、 doubles(Long.MAX_VALUE)と同等であるように実装されます。
      戻り値:
      擬似乱数double値のストリーム
    • doubles

      public DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、streamSizeで指定された数の擬似乱数double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のdoubles
      パラメータ:
      streamSize - 生成する値の数
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
      例外:
      IllegalArgumentException - streamSizeが0未満の場合、またはrandomNumberOriginrandomNumberBound以上の場合
    • doubles

      public DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
      このジェネレータまたはそれから分割されたジェネレータあるいはその両方から、実質的に無制限に擬似乱数 double値を生成するストリームを返します。各値は、指定された起点(これを含む)と限界(これを含まない)に従います。
      定義:
      インタフェースRandomGenerator内のdoubles
      実装上のノート:
      このメソッドは、 doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound)と同等であるように実装されます。
      パラメータ:
      randomNumberOrigin - 各乱数値の起点(含む)
      randomNumberBound - 各乱数値の境界(含まない)
      戻り値:
      それぞれ起点(含む)と限界(含まない)が指定された、擬似乱数double値のストリーム
      例外:
      IllegalArgumentException - randomNumberOriginrandomNumberBound以上の場合