我需要介于特定间隔之间的数字。
# include<iostream>
# include<cstdlib>
# include<ctime>
using namespace std;
int main()
{
srand(time(0));
for (int x = 1; x<=10; x++)
{
cout<< 15+ (rand()% 20) <<endl;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望输出在15到20之间,例如[15,20],但我总是得到>或<的输出,而不是确切的间隔。
自该语言的2011版本以来,有一个名为的类std::uniform_int_distribution
,但我认为它不能与一起使用rand()
,因此您必须使用一种新的伪随机生成器,例如std::mt19937
:
# include<random>
# include<iostream>
# include<ctime>
using namespace std;
int main()
{
uniform_int_distribution<> dis(15, 20);
mt19937 gen(time(0));
for (int x = 1; x<=10; x++)
{
cout<< dis(gen) <<endl;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
113 次 |
最近记录: |