作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Generating random integer from a range
(14 个回答)
4年前关闭。
我需要帮助弄清楚如何在两个用户输入的值之间生成一定数量的随机数,包括。只是你知道,我已经搜索过这个,但没有找到我刚才所说的。这是我的代码:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int userBeg, userEnd, outPut;
cout << "Enter a start value: ";
cin >> userBeg;
cout << "Enter an end value: ";
cin >> userEnd;
srand(time(NULL)); //generates random seed val
for (int i = 0; i < 5; i++) {
//prints number between user input, inclusive
outPut = rand()%((userEnd - userBeg) + 1);
cout << outPut << " ";
}//end for
return 0;
}//end main
最佳答案
使用 c++11 random
图书馆。
您可以使用 std::default_random_engine
(或任何其他随机引擎)与 std::uniform_int_distribution
.
您传递给 std::uniform_int_distribution
的值将是您的随机范围的下限和上限。
例如
#include <iostream>
#include <random>
int main()
{
const int nrolls = 100;
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(0,9);
int p[nrolls]={};
for (int i=0; i<nrolls; ++i)
{
p[i] = distribution(generator);
}
std::cout << "uniform_int_distribution (0,9):" << '\n';
for (int i=0; i<nrolls; ++i)
{
std::cout << i << ": " << p[i] << '\n';
}
}
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator(seed);
关于c++ - 如何生成包含两个值的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275512/
我是一名优秀的程序员,十分优秀!