C ++随机数

时间:2017-12-21 20:05:00

标签: c++ arrays for-loop

我为一个数组创建了一个随机数生成器(介于100和1之间),但每次运行它都会输出1到100之间相同的10个数字。

for (int x=0; x < 10; x++) {
       arr[x]=rand() % 100 + 1;

循环运行10次,因为数组包含10个整数。每次我运行它,它输出:42,68,35,1,70,25,79,59,63,65。

它从这行代码输出

 for (int z=0; z<10;z++) {
       cout << arr[z]<<", ";
 }

有人能看出为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

使用rand()时,它会从给定输入到srand()生成相同的序列。换句话说,它通常会使用与初始种子值相同的生成数字。这些函数在使用时被认为是不受欢迎的,有些甚至希望将它们标记为deprecated,以支持现代std伪随机数生成器库。

要生成随机数,请尝试使用<random>标题中的库。

您可以在此处找到文档:cppreference::random