随机

最后,关于随机化的说明。如前所述,当你声明 Random 的实例而没有任何参数时,构造函数将使用当前时间作为计算的一部分来创建初始种子编号。通常这没关系。

然而。如果你在非常短的时间内重新声明新实例,则每次计算种子数时,时间可能相同。考虑这段代码。

For i As Integer = 1 To 100000
    Dim rnd As New Random
    x = rnd.Next
Next

因为现在计算机非常快,这段代码运行起来只需要几分之一秒,并且在循环的几次重复迭代中,系统时间不会改变。因此,种子数不会改变,随机数也会相同。如果要生成大量随机数,请在此简单示例中声明循环外的随机实例。

Dim rnd As New Random
For i As Integer = 1 To 100000
    x = rnd.Next
Next

基本的经验法则是不要在短时间内重新实例化随机数发生器