gpt4 book ai didi

c++ - 大于 100,000 的随机数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:08 24 4
gpt4 key购买 nike

我正在用 C/C++ 编写代码,我想创建很多大于 100,000 的随机数。我会怎么做?使用 rand();

最佳答案

您不会使用 rand 来做到这一点,但是使用更新的 C++ 附带的适当的随机数生成器,请参见例如cppreference.com .

const int min = 100000;
const int max = 1000000;
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(min,max);
int random_int = distribution(generator); // generate random int flat in [min, max]

不要忘记为您的生成器正确设置种子。

上面我暗示 rand 不是“正确的”伪 RNG,因为它通常有许多缺点。在最好的情况下,它缺乏抽象,因此从不同的分布中进行选择变得困难且容易出错(在网络上搜索例如“随机范围模数”)。另外更换用于生成随机数的底层引擎是 AFAIK 设计不可能的。在不太理想的情况下,作为伪 RNG 的 rand 不能为许多/大多数用例提供足够长的序列长度。使用 TR1/C++11 生成高质量随机数非常容易,始终使用正确的解决方案,因此当出现隐蔽错误时,无需首先担心使用的伪 RNG 的质量。 Microsoft 的 STL 做了一个很好的演示 summary talk关于 GoingNative2013 的主题。

关于c++ - 大于 100,000 的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503671/

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