gpt4 book ai didi

c++ - C++11 PRNG 能否用于产生可重复的结果?

转载 作者:行者123 更新时间:2023-11-30 03:42:08 25 4
gpt4 key购买 nike

我正在为我的包开发一个测试套件,作为测试的一部分,我想在一个数据 block 上运行我的算法。然而,我突然想到,我可以使用一种算法来生成它,而不是对特定数据 block 进行硬编码。我想知道 C++11 <random> 是否设施将适合此目的。

据我了解,C++11 随机数引擎需要实现特定算法。因此,给定相同的种子,它们应该在算法参数定义的范围内产生相同的随机整数序列。

但是,就分发而言,该标准规定:

The algorithms for producing each of the specified distributions are implementation-defined.

(26.5.8.1 随机数分布类模板/一般)

这——除非我弄错了——意味着分布的输出几乎是未定义的。根据我的测试,GNU libstdc++ 和 LLVM 项目的 libc++ 中的分布在给定相同随机引擎的情况下产生不同的结果。

因此,问题是:生成可在不同平台上完全重复的伪随机数据的最正确方法是什么?

最佳答案

what would be the most correct way of producing pseudo-random data that would be completely repeatable across different platforms?

这很明显:编写您自己的发行版。正如您自己指出的那样,引擎 是跨平台的,因为它们实现了特定的算法。它是实现定义的分布。

所以自己写发行版。

关于c++ - C++11 PRNG 能否用于产生可重复的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36957670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com