gpt4 book ai didi

c++ - 需要帮助更好地理解 RNG

转载 作者:行者123 更新时间:2023-11-28 07:27:00 26 4
gpt4 key购买 nike

在本文的最后一个示例 (http://www.daniweb.com/software-development/cpp/threads/1769/c-random-numbers) 中,作者声称这是一种更好的生成随机数的方法。但是,我读了这一行,仍然对正在尝试做什么感到困惑。

random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0));

我测试了这段代码,但它每次都一直产生“1”的值。

我希望有人能提供澄清。

最佳答案

假设您要生成 [a, b) 范围内的随机整数。这可以通过生成 [0, b - a) 范围内的随机整数并添加 a 来实现:

random_integer = a + rand(0, b - a)

我们可以使用普通的 rand() 生成 [0, RAND_MAX] 范围内的随机整数。现在,我们需要缩放此区间以适应 [0, r)r = b - a。因为 RAND_MAXrand() 返回的最大值,所以 rand()/(MAX_RAND + 1.0)[0, 1)。所以,r * rand()/(MAX_RAND + 1.0)[0, r) 中。

关于c++ - 需要帮助更好地理解 RNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586993/

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