如何检测C++随机引擎的整个周期已被消耗
How to detect that the entire period of C++ random engine has been consumed
我想写一个小型(快速)C++程序,它本质上"检测"std::minstd_rand0
引擎的整个周期都已消耗掉。换句话说,我想检测序列何时重复(并测量序列重复所需的时间)。我不在乎目标分布(它可以是均匀的)。
我该怎么做有什么想法吗?我考虑的一个选项是创建两个std::array
变量。在第一个std::array
中,我将存储例如由std:minstd_rand0
返回的10000个第一伪随机变量。然后,我将用10000个变量的连续块填充另一个std::array
,并在每次通过10000个变量后比较2个数组的内容。我认为,一旦两个数组相等,整个周期就已经结束了。
这种做法明智吗?
标准随机数引擎可以相互比较——当且仅当它们具有相同状态时,它们的比较是相等的。
因此,您可以很容易地使用以下代码来测量周期:
- 创建两个默认构造的生成器
- 执行从其中一个生成器生成数字并递增计数的循环
- 直到两个生成器再次比较相等
至少在我对std::minstd_rand0
的快速测试中,我得到了的结果
2147483646
不用说,std::minstd_rand0
比std::mt19937
更实用(举一个明显的例子)。
相关文章:
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- Unity在虚幻引擎4中的"Vector3.Slerp"等效C++?
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 在虚幻引擎中删除NXOpen对象时崩溃
- 引擎节点:未定义的符号:_ZTV6Config
- Agora.io 虚幻引擎插件构建错误
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 无法在 Arch Linux 中启动虚幻引擎 4
- 在虚幻引擎中触发C++ dll的事件
- 在 C/C++ 中加载 OpenSSL 自定义引擎
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- 提高基于组件的游戏引擎的效率
- 在C++中嵌入 Mozilla 的 JavaScript 引擎
- 如何在虚幻引擎4中将char*转换为TCHAR?
- Pisano 周期生成器在 3 位周期内行为不正确
- 如何将外部代码包含在虚幻引擎4 C++项目中
- 如何使用虚幻引擎"filter"多播?
- 我可以在没有Xcode的情况下在Mac上使用带有C++的虚幻引擎吗?
- 如何检测C++随机引擎的整个周期已被消耗