【发布时间】:2017-03-08 17:10:21
【问题描述】:
C++ 标准在 [rand.util.canonical] 下非常详细地说明了模板函数 std::generate_canonical 的工作原理(尽管它只提供伪代码,而不是 C++ 代码)。
规范作者的意图是,在 RealType 上的数学工作相同的不同平台上,对于在两个平台上给出相同输出的确定性 URNG,std::generate_canonical 给出相同的输出好吗?
这与 Is 1.0 a valid output from std::generate_canonical? 之类的类似问题有关——散文指出 1.0 被排除在外,但他们在伪代码中给出的算法有时会将其作为输出包含在 RealType 和 URNG 的某些组合中。
这与讨论的随机数分布函数形成对比,例如C++11 random number distributions are not consistent across platforms -- what alternatives are there?;该标准确实“不”指定如何生成正态分布,仅指定其属性
我还没有找到任何讨论这个问题的 DR,而且标准的措辞在我可以轻松访问的 C++11、C++14 和 C++17 草案标准中表面上是相同的。
【问题讨论】:
标签: c++ random floating-point cross-platform