大佬教程收集整理的这篇文章主要介绍了c – 不同平台的generate_canonical输出是否一致?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
规范作者的意图是,在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草案标准中表面上是相同的.
现在,准确的措辞是“实例化的结果……尽可能均匀地分布,如下所述”.如果舍入模式是舍入到最接近的,则产生1.0的实现不尽可能均匀(因为1-eps不太可能比1-2 * eps).但它仍然“如下所述”.因此,根据您解析该句子的方式,generate_canonical要么是完全指定的,要么是一致的,或者已经为实现委派了一些额外的未讨论的位.
在任何情况下,某些实现产生1.0的事实使得很明显当前行为不是跨平台一致的.如果你想要这样,似乎最直接的方法是将你的URNG包装在一个independenT_Bits_ENGIne中以产生一些比特位因子,所以从来没有任何东西可以舍入.
以上是大佬教程为你收集整理的c – 不同平台的generate_canonical输出是否一致?全部内容,希望文章能够帮你解决c – 不同平台的generate_canonical输出是否一致?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。