c++ - Rand 在从最大为 75 的数字 (36) 开始时如何工作

标签 c++ random

我正在创建一个随机数生成器,每当我运行当前代码块时,我总是会得到一些超过预期限制的数字。它的工作方式是我有一组随机生成的数字,从 36 到 75,调整后的数字比原始数字高 5 个,低 5 个。例如,我最终会得到 75 以上的数字。最高的是 105。 这只是 6 个数字中的一个。

//Displays picks for Number 4
pick4 = (rand() % 75) + 36;
if (pick4 == pick3)
    pick4 = (rand() % 75) + 36;
if (pick4 + 5 < 75 + 1)
{
if (pick4 - 5 > 0)
    {
        adjHighPick4 = pick4 + 5;
        adjLowPick4 = pick4 - 5;
    }
}

最佳答案

当你想得到一个从AB的随机整数时,你只需要一个从0B-A的随机整数,向其中添加 A。因此,您应该编写 rand() % 39 + 36 而不是 rand() % 75 + 36 (A=36, B=75, B-A= 39)

关于c++ - Rand 在从最大为 75 的数字 (36) 开始时如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28528499/

相关文章:

c - C 中的 rand() 函数即使在播种时也不是随机的

c++ - STL多重继承的remove()处理

c++ - Credential Providers V2 - 提交后添加代码并检查用户密码

Android:链接到预建的静态库

php - 将字符串拆分为 3 个随机长度部分

C++ boost 多个对象中的普通随机数

c++ - wstring_buffer 没有给出输出

c++ - -D 选项从 g++ 命令行被错误地扩展

javascript - 每秒生成 0 到 100 之间的增量随机数,其中新数字应大于前一个数字

c++ - std::generate - 如何使用随机数生成器?