- 所有已知实现类:
-
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
小于零
-