随机数生成似乎无法正常工作

时间:2019-01-30 17:12:02

标签: arrays vb.net random

正在发生某种事情,我不了解其背后的原因。

在Visual Basic中,我有一个2D整数数组,该数组中填充了随机数。当我使用Rnd()进行操作时:

For j = 0 To matrix.GetUpperBound(0)
  For i = 0 To matrix.GetUpperBound(1)
    matrix(j, i) = 1 + CType((Rnd() * 50), Integer)
  Next
Next

它总是在矩阵的相同位置写入相同的数字。

但是当我对Random类进行操作时:

Dim r As Random = New Random()
For j = 0 To matrica.GetUpperBound(0)
  For i = 0 To matrica.GetUpperBound(1)
    matrica(j, i) = r.Next(0, 100)
  Next
Next

它可以完成预期的工作。

我不明白为什么在每种情况下,每次运行代码时,我都会在同一位置得到相同的数字。

1 个答案:

答案 0 :(得分:3)

在第一种情况下,您需要使用Randomize()调用为随机数生成器生成种子。选中此link