AseN Asked:2020-07-31 23:19:45 +0000 UTC2020-07-31 23:19:45 +0000 UTC 2020-07-31 23:19:45 +0000 UTC 是否可以根据 srand 计算相同的序列? 772 一个纯粹的哲学问题: 在不同设备上生成相同序列时是否可以依赖随机化基础? 例如,通过设置一些基数 (srand) 并生成 100 个数字,您能否确定这些相同的数字将在更快/更慢的计算机/电话等上使用相同的基数生成。就处理器频率而言? PS 这个问题是基于 C 标准库中的 srand 函数 。PPS 不同的编译器产生不同的序列。 c 2 个回答 Voted Harry 2020-07-31T23:55:13Z2020-07-31T23:55:13Z 例如,在不同机器上使用相同编译器的情况下 - 是的。 对于不同的编译器 - 没有。 Best Answer Pavel Mayorov 2020-08-15T17:41:47Z2020-08-15T17:41:47Z 不。实现srand取决于所使用的 C 标准库——并且在不同的计算机上可能有所不同。即使在同一台计算机上,它也可能不同。即使由同一个编译器编译。 如果您需要一个可移植的确定性伪随机数生成器,最好自己编写。
例如,在不同机器上使用相同编译器的情况下 - 是的。
对于不同的编译器 - 没有。
不。实现
srand取决于所使用的 C 标准库——并且在不同的计算机上可能有所不同。即使在同一台计算机上,它也可能不同。即使由同一个编译器编译。如果您需要一个可移植的确定性伪随机数生成器,最好自己编写。