隨機

最後,關於隨機化的說明。如前所述,當你宣告 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

基本的經驗法則是不要在短時間內重新例項化隨機數發生器