gpt4 book ai didi

c++ - 如何限制C++中rand函数生成的数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:26:34 26 4
gpt4 key购买 nike

我想要 5 个不同的随机数,但生成的位数相同。

我有这个代码:

int main()
{
srand(time(0));
unsigned int num1 = rand();
cout << "random number 1 = " << num1 << endl;
unsigned int num2 = rand();
cout << "random number 2 = " << num2 << endl;
unsigned int num3 = rand();
cout << "random number 3 = " << num3 << endl;
unsigned int num4 = rand();
cout << "random number 4 = " << num4 << endl;
unsigned int num5 = rand();
cout << "random number 5 = " << num5 << endl;
}

输出是:

random number 1 = 278203697
random number 2 = 2102275865
random number 3 = 1018298572
random number 4 = 1658370388
random number 5 = 429634923

与此同时,我想要的输出是它为所有数字生成相同数量的数字。例如:

random number 1 = 278203697
random number 2 = 210227586
random number 3 = 101829857
random number 4 = 165837038
random number 5 = 429634923

如何让它成为我想要的输出?

谢谢,感谢您的帮助

最佳答案

如果您希望所有数字都包含相同数量的数字,您要么必须创建一个很多随机数。或者使用一些 new functionality在 C++11 中引入,如 std::uniform_int_distribution类:

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(100000000, 999999999);

for (int n = 1; n <= 5; ++n)
std::cout << "random number " << n << " = " << dis(gen) << '\n';

您也可以只设置输出的宽度,并用前导零填充它:

std::cout << std::setw(10) << std::setfill('0') << std::rand() << '\n';

关于c++ - 如何限制C++中rand函数生成的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18509376/

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