【发布时间】:2020-08-01 12:15:47
【问题描述】:
我正在尝试生成 10 个随机生成的数字的列表,范围在 100000 到 583662 之间,并且我尝试过的每件事都会导致所有数字都以 1 开头,并且不会生成高于 199999 的数字。我实际上已经生成了 1000 个数字,看看它是否只是一个样本太小,但在 1000 个数字中,我应该至少有几个数字高于 199999,但没有一个。这是我一直在使用的代码:
#include <stdio.h>
#include <cstdlib>
#include <ctime>
#define SIZE 100
int main()
{
int globalArray[SIZE] = {0};
srand((unsigned)time(0));
int count;
for (int count = 0; count < 100; ++count) {
globalArray[count] = (rand() % 483662) + 100000;
}
for (int count = 0; count < 100; ++count) {
printf("%d\n", globalArray[count]);
}
return 0;
}
【问题讨论】:
-
random标头包含您需要执行此操作的内容。 -
这是你不使用
rand的原因之一。RAND_MAX可以小到 32767。 -
@BessieTheCow 那么还有什么函数可以用来生成我要找的随机数范围呢?
-
C++
<random>header 中的内容,例如带有正确种子生成器的std::uniform_int_distribution。