gpt4 book ai didi

c++11 - 需要使用 C++11 的确定性均匀分布

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

我正在使用 C++11 的随机库来生成确定性随机值,我需要将输出限制在各种范围内并且自然地使用 std::uniform_int_distribution 但令我沮丧的是规范给出了库实现过于自由,输出在 X86-64 Linux 和 X86 Windows 7 之间不同。

除了实现我自己的分布之外,是否有任何选项可以确保无论库实现如何输出都是确定性的?

最佳答案

Is there any option besides implementing my own distribution to ensure that the output is deterministic regardless of library implementation?

除了实现您自己的分发之外,没有其他选择可以确保输出是确定性的,而不管库实现如何。虽然引擎是确定性的,但分布不是。

uniform_int_distribution 的典型实现将涉及“拒绝”算法,该算法将重复从 URNG 中获取一个数字,如果该结果不在所需范围内,则将其丢弃并重试。该主题的变体将通过将超出范围的值折叠成范围内的值来优化该算法,以便在不偏向接受范围的情况下最大限度地减少拒绝,就像简单的 offset + lcg() % range 算法所做的那样。

关于c++11 - 需要使用 C++11 的确定性均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26091318/

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