- 所有已知的实现类:
SplittableRandom
- 封闭接口:
RandomGenerator
public static interface RandomGenerator.SplittableGenerator extends RandomGenerator.StreamableGenerator
该接口旨在为生成伪随机值序列的对象提供通用协议,并且可以split分为两个对象(原始对象和新对象),每个对象都遵循相同的协议(因此可以无限期地递归拆分)。
理想情况下,通过递归拆分从单个原始 RandomGenerator.SplittableGenerator
对象生成的所有 RandomGenerator.SplittableGenerator
对象在统计上彼此独立且单独统一。因此,我们希望由一组此类对象共同生成的值集具有相同的统计属性,就好像由单个线程使用单个 RandomGenerator.SplittableGenerator
对象生成相同数量的值一样。在实践中,人们必须满足于某种近似于独立性和统一性。
提供了执行单个拆分操作以及生成从原始生成器拆分出来的生成器流的方法(通过迭代或递归拆分,或组合)。
实现 RandomGenerator.SplittableGenerator
的对象通常不是加密安全的。考虑改为使用 SecureRandom
来获取密码安全的伪随机数生成器,以供对安全敏感的应用程序使用。
-
内部类总结
-
方法总结
修饰符和类型方法描述default 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
接口。在接口 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
-
方法详情
-
of
- 参数:
name
- 随机数生成器的名称 算法- 返回:
RandomGenerator.SplittableGenerator
的实例- 抛出:
NullPointerException
- 如果名称为空IllegalArgumentException
- 如果找不到指定的算法
-
split
返回一个新的伪随机数生成器,从这个生成器中分离出来,它实现了RandomGenerator
和RandomGenerator.SplittableGenerator
接口。该伪随机数生成器可用作用于初始化新伪随机数的状态的伪随机位源。
- 返回:
-
实现
RandomGenerator
和RandomGenerator.SplittableGenerator
接口的新对象
-
split
返回一个新的伪随机数生成器,从这个生成器中分离出来,它实现了RandomGenerator
和RandomGenerator.SplittableGenerator
接口。- 参数:
source
- 一个RandomGenerator.SplittableGenerator
实例,用于代替这个实例作为伪随机位的来源,用于初始化新位的状态。- 返回:
-
实现
RandomGenerator
和RandomGenerator.SplittableGenerator
接口的对象 - 抛出:
NullPointerException
- 如果源为空
-
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
- 一个RandomGenerator.SplittableGenerator
实例,用于代替这个实例作为伪随机位的来源,用于初始化新位的状态。- 返回:
RandomGenerator.SplittableGenerator
对象流- 抛出:
NullPointerException
- 如果源为空
-
splits
Stream <RandomGenerator.SplittableGenerator > splits(long streamSize, RandomGenerator.SplittableGenerator source) 返回产生给定streamSize
个新伪随机数生成器的流,每个生成器都实现RandomGenerator.SplittableGenerator
接口。- 参数:
streamSize
- 要生成的值的数量source
- 一个RandomGenerator.SplittableGenerator
实例,用于代替这个实例作为伪随机位的来源,用于初始化新位的状态。- 返回:
RandomGenerator.SplittableGenerator
对象流- 抛出:
IllegalArgumentException
- 如果streamSize
小于零NullPointerException
- 如果源为空
-
rngs
返回有效无限的新伪随机数生成器流,每个生成器都实现了RandomGenerator
接口。理想情况下,流中的生成器在统计上似乎是独立的。- 指定者:
rngs
在接口RandomGenerator.StreamableGenerator
中- 实现要求:
-
默认实现调用
splits
()。 - 返回:
-
实现
RandomGenerator
接口的对象流
-
rngs
返回产生给定streamSize
个新伪随机数生成器的流,每个生成器都实现RandomGenerator
接口。理想情况下,流中的生成器在统计上似乎是独立的。- 指定者:
rngs
在接口RandomGenerator.StreamableGenerator
中- 实现要求:
-
默认实现调用
splits
(streamSize)。 - 参数:
streamSize
- 要生成的发电机数量- 返回:
-
实现
RandomGenerator
接口的对象流 - 抛出:
IllegalArgumentException
- 如果streamSize
小于零
-