- 所有已知实现类:
-
SplittableRandom
- 封装接口:
-
RandomGenerator
public static interface RandomGenerator.SplittableGenerator extends RandomGenerator.StreamableGenerator
该接口旨在为生成伪随机值序列的对象提供一个通用协议,并且可以将其分割为两个对象(原始对象和新对象),每个对象都遵守相同的协议(因此可以无限递归地分割)。
理想情况下,通过从单个原始RandomGenerator.SplittableGenerator对象递归分割生成的所有对象在统计上是相互独立且各自均匀的。因此,我们期望由一组这样的对象生成的值集合具有与单个线程使用单个RandomGenerator.SplittableGenerator对象生成相同数量的值时相同的统计特性。在实践中,必须接受一些近似独立和均匀性。
提供了执行单个分割操作以及生成从原始对象分割出的生成器流的方法(通过迭代或递归分割,或二者结合)。
实现RandomGenerator.SplittableGenerator的对象通常不具有密码学安全性。考虑改用SecureRandom来获取密码学安全的伪随机数生成器,用于安全敏感应用程序。
-
Nested Class Summary
Nested classes/interfaces declared in interface java.util.random.RandomGenerator
RandomGenerator.ArbitrarilyJumpableGenerator, RandomGenerator.JumpableGenerator, RandomGenerator.LeapableGenerator, RandomGenerator.SplittableGenerator, RandomGenerator.StreamableGenerator -
Method Summary
Modifier and TypeMethodDescriptiondefault Stream<RandomGenerator> rngs()返回一个有效无限的新伪随机数生成器流,每个生成器实现RandomGenerator接口。default Stream<RandomGenerator> rngs(long streamSize) 返回一个生成给定streamSize数量的新伪随机数生成器流,每个生成器实现RandomGenerator接口。split()返回一个从此生成器分割出的新伪随机数生成器,实现RandomGenerator和RandomGenerator.SplittableGenerator接口。返回一个从此生成器分割出的新伪随机数生成器,实现RandomGenerator和RandomGenerator.SplittableGenerator接口。splits()返回一个有效无限的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。splits(long streamSize) 返回一个生成给定streamSize数量的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。splits(long streamSize, RandomGenerator.SplittableGenerator source) 返回一个生成给定streamSize数量的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。返回一个有效无限的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。Methods declared in interface java.util.random.RandomGenerator
doubles, doubles, doubles, doubles, 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
-
Method Details
-
of
- 参数:
-
name- 随机数生成器的名称算法 - 返回:
-
一个
RandomGenerator.SplittableGenerator实例 - 抛出:
-
NullPointerException- 如果名称为null -
IllegalArgumentException- 如果找不到指定的算法
-
split
返回一个从此生成器分割出的新伪随机数生成器,实现RandomGenerator和RandomGenerator.SplittableGenerator接口。此伪随机数生成器可用作用于初始化新生成器状态的伪随机位的源。
- 返回:
-
实现
RandomGenerator和RandomGenerator.SplittableGenerator接口的新对象
-
split
返回一个从此生成器分割出的新伪随机数生成器,实现RandomGenerator和RandomGenerator.SplittableGenerator接口。- 参数:
-
source- 用作初始化新生成器状态的伪随机位源的RandomGenerator.SplittableGenerator实例 - 返回:
-
实现
RandomGenerator和RandomGenerator.SplittableGenerator接口的对象 - 抛出:
-
NullPointerException- 如果源为null
-
splits
返回一个有效无限的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。此伪随机数生成器可用作用于初始化新生成器状态的伪随机位的源。
- 实现要求:
-
默认实现调用
splits(this)。 - 实现说明:
-
允许以等效于
splits(Long.MAX_VALUE)的方式实现此方法。 - 返回:
-
一个
RandomGenerator.SplittableGenerator对象流
-
splits
返回一个生成给定streamSize数量的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。此伪随机数生成器可用作用于初始化新生成器状态的伪随机位的源。
- 参数:
-
streamSize- 要生成的值的数量 - 返回:
-
一个
RandomGenerator.SplittableGenerator对象流 - 抛出:
-
IllegalArgumentException- 如果streamSize小于零
-
splits
返回一个有效无限的新伪随机数生成器流,每个生成器实现RandomGenerator.SplittableGenerator接口。- 实现说明:
-
允许以等效于
splits(Long.MAX_VALUE,source)的方式实现此方法。 - 参数:
-
source- 用作初始化新生成器状态的伪随机位源的RandomGenerator.SplittableGenerator实例 - 返回:
-
一个
RandomGenerator.SplittableGenerator对象流 - 抛出:
-
NullPointerException- 如果源为null
-
splits
Stream<RandomGenerator.SplittableGenerator> splits(long streamSize, RandomGenerator.SplittableGenerator source) 返回一个流,生成给定数量的新伪随机数生成器,每个生成器实现RandomGenerator.SplittableGenerator接口。- 参数:
-
streamSize- 要生成的值的数量 -
source- 一个RandomGenerator.SplittableGenerator实例,用于初始化新生成器状态的伪随机位的来源。 - 返回:
-
一个包含
RandomGenerator.SplittableGenerator对象的流 - 抛出:
-
IllegalArgumentException- 如果streamSize小于零 -
NullPointerException- 如果 source 为 null
-
rngs
返回一个有效无限的流,生成新的伪随机数生成器,每个生成器实现RandomGenerator接口。理想情况下,流中的生成器将表现为统计独立的。- 指定者:
-
rngs在接口RandomGenerator.StreamableGenerator - 实现要求:
-
默认实现调用
splits()。 - 返回:
-
一个包含实现
RandomGenerator接口的对象的流
-
rngs
返回一个流,生成给定数量的新伪随机数生成器,每个生成器实现RandomGenerator接口。理想情况下,流中的生成器将表现为统计独立的。- 指定者:
-
rngs在接口RandomGenerator.StreamableGenerator - 实现要求:
-
默认实现调用
splits(streamSize)。 - 参数:
-
streamSize- 要生成的生成器数量 - 返回:
-
一个包含实现
RandomGenerator接口的对象的流 - 抛出:
-
IllegalArgumentException- 如果streamSize小于零
-