【问题标题】:C++ Random Number [duplicate]C ++随机数[重复]
【发布时间】:2017-12-21 20:05:00
【问题描述】:

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

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]<<", ";
 }

谁能明白为什么会这样?

【问题讨论】:

标签: c++ arrays for-loop


【解决方案1】:

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

要生成随机数,请尝试使用 &lt;random&gt; 标头中的库。

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

【讨论】:

  • 第一句话不太清楚 - 按照设计,rand 将始终生成相同的序列,给定 srand 的特定输入。
  • @OliverCharlesworth 是的;我只是想强调更好地使用&lt;random&gt; 库。
猜你喜欢
  • 2013-05-12
  • 1970-01-01
  • 2017-05-20
  • 2010-12-10
  • 2015-01-09
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多