Random 是否有一个随机数生成器可以跳过/删除O(1)中的N个绘图?

Random 是否有一个随机数生成器可以跳过/删除O(1)中的N个绘图?,random,Random,是否有任何非加密伪随机数生成器可以跳过/删除O1中的N个绘图,或者可能是Olog N但小于ON 特别是对于并行应用,拥有上述类型的生成器将是有利的。要生成随机数数组的图像。可以为此任务编写一个并行程序,并为每个线程独立地设置随机数生成器的种子。然而,数组中的数字将与顺序情况下的数字不同,除了前半部分 如果存在上述类型的随机数生成器,则第一个线程可以使用用于顺序实现的种子进行种子。第二个线程也可以使用此种子进行种子设定,然后删除/跳过由第一个线程生成的N/2个样本。然后,输出阵列将与串行案例相同,

是否有任何非加密伪随机数生成器可以跳过/删除O1中的N个绘图,或者可能是Olog N但小于ON

特别是对于并行应用,拥有上述类型的生成器将是有利的。要生成随机数数组的图像。可以为此任务编写一个并行程序,并为每个线程独立地设置随机数生成器的种子。然而,数组中的数字将与顺序情况下的数字不同,除了前半部分

如果存在上述类型的随机数生成器,则第一个线程可以使用用于顺序实现的种子进行种子。第二个线程也可以使用此种子进行种子设定,然后删除/跳过由第一个线程生成的N/2个样本。然后,输出阵列将与串行案例相同,易于测试,但仍能在更短的时间内生成。 下面是一些伪代码

定义_POSIX_C_源1 包括 包括 包括 无效的随机数*随机数*种子数,整数N { /*愚蠢的执行*/ 对于int i=0;i当然。它的后代可以在OlogN时间内跳过N个数字的生成。它是以F.Brown的纸为基础的


是C++ C++ 11的一个实现。

< P> Severin Pappadeux指出,C、C++和Haskell的实现提供了一个这样的跳转/跳转功能的接口: 函数名为:advance和backstep,分别简要记录和

从撰写本文时访问的网页中引用:

。。。随机数生成器就像一本书,一页接一页地列出统计上的随机数。种子为我们提供了一个起点,但有时能够在序列中向前或向后移动,并且能够有效地这样做是有用的

C++实现PCG生成方案,为有效地跳转和后退,有效地向后跳转提供了提前。


克里斯·多德写道:


显然,任何计数器模式下的对称密码都是候选密码


显然,候选的是计数器模式下的任何对称密码。@ChrisDodd:yep,跳过它将是O1。当然,除非你将密码减少到几轮,否则生成密码的成本相对较高。谢谢你的评论。谢谢你的快速回复。@LukasKoestler,不客气。请记住,LCG被认为不是高质量的RNG。但基于LCG、质量更好的RNG——我相信,PCG——也有这种领先的能力。