我之前被告知,在我使用Rnd()
的VB.NET应用程序之前,我应该始终使用Randomize()
。但是,如果没有它,它似乎总能正常工作。在这种情况下,为我添加Randomize()
是什么?在VB.NET中的Rnd()之前使用Randomize()
这似乎并不影响我在最不应用。
我之前被告知,在我使用Rnd()
的VB.NET应用程序之前,我应该始终使用Randomize()
。但是,如果没有它,它似乎总能正常工作。在这种情况下,为我添加Randomize()
是什么?在VB.NET中的Rnd()之前使用Randomize()
这似乎并不影响我在最不应用。
在Visual Basic,Rnd()使用数学运算产生下一个“随机”数。由于实际操作是已知的,给定一个特定的值,您可以预测下一个值。但是,给定一个仲裁开始值的数字具有良好的分布 - 这些是“伪随机”数字。
为了保持Rnd()
从可预测的数字开始(因此每次给出相同的“随机”数字序列),应该调用Randomize()来使用机器时钟来设置初始值(称为种子) 。
(在.NET世界,我想如果你可以使用System.Random代替。)
Randomize()
初始化的Rnd()
第一个种子。如果你不使用它 - VB.NET将使用默认的种子编号。
随机化将设置种子的东西时间有关,如系统正常运行时间或系统日期。因此,功能Rand()
将在每次执行应用程序时显示不同的值。但是,我强烈建议您使用System.Random类而不是VisualBasic Rand()
。无需调用任何randomize()
功能
下面是一些示例代码,这会产生从下到上界六个随机整数:
Dim randObj As New Random(seed)
Dim j As Integer
For j = 0 To 5
Console.Write("{0,11} ", randObj.Next(lower, upper))
Next j
Console.WriteLine()