首页 > 解决方案 > 提升随机输出从 1.58 到 1.67 的已知差异?

问题描述

我正在使用一些我没有编写的生成随机数据的遗留代码。输出从 1.58 更新到 1.67 提升后发生了变化。通常可重现的输出由固定的种子密钥发生。但是它们现在在新旧版本之间有所不同。

使用的提升随机分布包括 uniform_int、uniform_real、exponential_distribution 和 normal_distribution。有没有人知道其中一个或多个现在与我提到的增强版本不同?

我可能必须编写一个简单的测试程序来确定这一点。

标签: c++c++11randomboost

解决方案


至少在 2016 年 7 月更改为使用 Ziggurat 方法(改进版本)的正态和指数分布,参见https://github.com/boostorg/random/commit/c7d1b4f3516098b3e2fc8f8531d716881ab5834e。这一特殊更改首次出现在版本 1.62(2016 年 10 月发布)中。我没有及时检查。


推荐阅读