2009-09-04 116 views

回答

8

在Visual Basic,Rnd()使用数学运算产生下一个“随机”数。由于实际操作是已知的,给定一个特定的值,您可以预测下一个值。但是,给定一个仲裁开始值的数字具有良好的分布 - 这些是“伪随机”数字。

为了保持Rnd()从可预测的数字开始(因此每次给出相同的“随机”数字序列),应该调用Randomize()来使用机器时钟来设置初始值(称为种子) 。

(在.NET世界,我想如果你可以使用System.Random代替。)

4

Randomize()初始化的Rnd()第一个种子。如果你不使用它 - VB.NET将使用默认的种子编号。

1

随机化将设置种子的东西时间有关,如系统正常运行时间或系统日期。因此,功能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()