c++ - 为什么 rand() 产生的随机数高于比例因子?
问题描述
我试图获得一个随机数,最大为使用的比例因子,即 1112,最小为 1000,这是我正在使用的移位值。但是,当我运行程序时,我得到的输出是 1127。我做错了什么?谢谢你。
这是代码:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n = 0;
n = 1000 + rand() % 1112;
cout << n << endl;
}
这是我在终端中的输出:
1127
Program ended with exit code: 0
解决方案
尝试:
int max = 1112;
int min = 1000;
int range = max - min + 1;
n = rand() % range + min;
没有测试过。我可能在错误的地方有“+1”。
推荐阅读
- html - 登录时的兴趣选择:AngularJS
- python - 如何处理有关分析通话记录并获得有关该主题的有意义结果的项目
- html - 无法更改 img 上的高度
- c# - 从 C# 运行的 powershell 命令捕获输出
- google-apps-script - 在编辑特定范围时运行函数 - 跟进问题 2
- node.js - 如何在节点js中使用异步和等待获取数据
- android - Gradle Build Fails - 类文件 com/google/wireless/android/sdk/stats/GradleBuildMemorySample$Builder 中的非法异常表范围
- reactjs - 一个字段的列内带有下拉菜单的材料 UI 表
- azure - Terraform:如何将一个模块的输出值传递给天蓝色的另一个模块
- powershell - 有没有办法使用 powershell 从 lotus notes 数据库中获取超过 30 分钟的文档?