【发布时间】:2019-02-28 21:17:47
【问题描述】:
我很难理解使用“rand()”从整数数组中随机读取数字的概念。我创建了一个介于 1-3 之间的随机数生成器,并希望输出一个数组的索引,然后让生成器从前一个索引中随机输出下一个生成的数字,直到它到达数组的末尾。例如:
'rand()'= 3, 'array[2]'
'rand()' = 2, 'array[4]'
- 'rand()' = 3, '数组[7]'
如果这有意义?等等等等。
我目前使用的代码只是输出一个随机数序列。我已经放置了一个“种子”,所以我可以查看相同的序列。
int main()
{
int arrayTest[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20};
srand(4);
for(int i = 0; i < 20; i++)
{
arrayTest[i] = (rand() % 3);
cout << arrayTest[i] << endl;
}
}
【问题讨论】:
-
我想你想说的是你试图以随机增量迭代一个数组,而不是一次一个元素。但这措辞如此混乱,以至于完全不清楚。请让你的问题更清楚。即使是所示的示例,据称生成随机数 1-3,最终也会产生值 5 和 6。
-
您正在使用带有常数的 srand,这将使输出始终相同。您应该使用另一种随机性来源,例如时间。此外,您应该使用 C++11 的随机数生成器 Link here。
-
@mamg22 再次阅读问题。如果有一件事很清楚,那就是种子被设计成相同的重复结果。
-
@SergeyA 哦,我没看到
-
@mamg22 是的,请阅读我先放的内容。问题已经解决了