- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果我在 C 中将种子设置为 0,我将在调用 rand()
三次后得到这个序列:
38, 7719, 21238, ...,
如果我将种子设置为 1 (srand(1)
),我将得到其他序列:
41, 18467, 6334, ...,
我知道这是非常不可能的,但是 srand(1)
的序列会在某个时候出现在 srand(0)
的序列中吗?我的意思是,使用 srand(0)
我会得到:
38, 7719, 21238, ..., ..., ..., 41, 18467, 6334, ...,?
谢谢!
最佳答案
虽然它没有由标准定义 - 您的问题的答案是肯定的,但这取决于所使用的算法,通常是线性同余生成器 (LCG)。 LCG 被认为具有较高的交叉自相关性。查看 rand
在您的平台中是如何实现的,可以让您更好地描述它。这是一个例子 Rand Implementation
关于c - 具有不同种子的PRNG序列会在C中重叠吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32747622/
这个问题是双重的。我正在将 R 脚本翻译成 C++,它使用 L'Ecuyer 组合多重递归生成器 (CMRG) 作为引擎(特别是 MRG32k3a),然后从区间 (0, 1) 上的均匀分布返回一个随机
这个问题是双重的。我正在将 R 脚本翻译成 C++,它使用 L'Ecuyer 组合多重递归生成器 (CMRG) 作为引擎(特别是 MRG32k3a),然后从区间 (0, 1) 上的均匀分布返回一个随机
对于我正在制作的游戏,其中太阳系具有 x 和 y 坐标,我想使用坐标随机生成该太阳系的特征。最简单的方法似乎是用两个种子(x 和 y 坐标)为随机数生成器播种。有没有办法从两颗种子中得到一颗可靠的种子
下面的代码(并且可以按原样编译)导致随机数生成器出于某种原因为所有进程返回完全相同的随机数。怎么可能呢?我对互斥体做错了吗? #include #include #include #includ
我正致力于在 C 中生成非常大的随机整数。我发现/dev/random 是一个很好的来源,但如果熵池耗尽,它就会阻塞。/dev/urandom 似乎是下一个 goto,但随机性的质量相比之下就没那么好
我对函数 rand(x, y, seed) 感兴趣,它根据参数返回(伪)随机数,具有以下属性: 返回的值应该取决于它的 3 个参数,不取决于 rand 到目前为止被调用的次数。例如,假设这些调用按以下
我必须使用这些参数创建一个 PRNG“该程序应使用以下算法生成 1000 个数字的序列:seed = ( 1664525 * seed + 1013904223 ) % 4294967296 对于每个
这个问题的动机是在 Scala 中使用 PRNG,但答案很可能与语言无关。 问题 我想为我的 PRNG 提供一个功能接口(interface)。目前我所知道的 PRNG 实现(Java stdlib、
我正在玩 PRNG(如 Mersenne Twister 和 stdlib 的 rand() 函数),我想要一个好的测试来帮助我确定 PRNG 生成的随机数据的质量。 我使用 PRNG 生成的随机数计
我正在基于AES构建文件加密,必须能够在随机访问模式下工作(访问文件的任何部分)。例如,可以使用Counter中的AES,但众所周知,我们需要一个从未使用过两次的唯一序列。 在这种情况下,可以使用简化
您是否曾经编写过因所使用的(伪)随机数的质量而遇到麻烦的模拟或随机算法? 发生了什么? 您是如何检测/意识到您的 prng 是问题所在的? 切换 PRNG 是否足以解决问题,还是必须切换到真正的随机源
我们有一个脚本可以在我的工作中建立一个新的网络服务器。该脚本涉及创建多个帐户来运行服务、应用程序池等。 我们需要为这些用户中的每一个创建一个密码——即生成一个大约 32 个字符的 ASCII 字符串用
MD5/SHA256/SHA512等可以用作PRNG吗?例如,给定一个整数种子,伪代码是: random_number = truncate_to_desired_range( sha512(
我们有一个脚本可以在我的工作中建立一个新的网络服务器。该脚本涉及创建多个帐户来运行服务、应用程序池等。 我们需要为这些用户中的每一个创建一个密码——即生成一个大约 32 个字符的 ASCII 字符串用
我想知道 Java 中 Math.random() 后面的 PRNG* 的默认种子是什么。据我了解,C 中的时钟是基于系统时钟的。那么Java中是不是也类似呢?另外,每次调用 Math.random(
我正在寻找一种哈希算法,该算法可生成 31/32 位有符号/无符号整数作为 utf8 字符串的摘要,目的是使用输出为 prng 播种,例如 Park-Miller-Carta LCG 或Mersenn
在Java中,我使用“SHA1PNRG”生成伪随机数。我不知道这个数字生成的内部工作原理。什么种子值最适合安全数字生成?我应该使用较小的数字作为种子还是较大的值作为种子?请各位给予正确指导。 我的代码
我想用基于哈希的数据生成器替换现有的基于随机数的数据生成器(Python),这样它就不再需要按顺序生成所有内容,灵感来自 this article . 我可以通过获取哈希的整数版本并将其除以哈希的最大
问题背景 我已经有了针对给定问题的 O(nlog(n)) 解决方案,我将其用作检查器来测试新的更快的解决方案 (O(n))。这两种方法具有相同的签名:它们接收一个数组作为参数并返回一个 long 值。
我想创建一个应用程序,其中登录密码可以作为伪随机数生成器的种子以重新创建加密 key 。然后,该加密 key 将用于加密发送到应用程序数据库和从应用程序数据库发送的所有数据,使用户数据甚至主机都无法访
我是一名优秀的程序员,十分优秀!