我想創建一個隨機值的數組,以便我可以對它們進行排序。問題是,隨機數發生器不工作,一遍又一遍地重複相同的數字。我之前使用過這種隨機數生成方法,它的工作很好。如果我將一個斷點放入CreateArray()循環的代碼中,那麼它工作得很好,但我必須手動完成代碼。我無法理解它是如何與斷點一起工作的,但是如果沒有一個斷點就無法工作。VB.net隨機數生成器重複相同的值
Sub Main()
Dim Value_Array As New List(Of Integer)
Dim No_Of_Items As Integer = 10
Dim Pass_No As Integer = 1
Dim Temp As Integer
Value_Array = CreateArray(No_Of_Items)
For Pass_No = 1 To (No_Of_Items - 1)
For j = 0 To (No_Of_Items - (Pass_No + 1))
If Value_Array(j) > Value_Array(j + 1) Then
Temp = Value_Array(j)
Value_Array(j) = Value_Array(j + 1)
Value_Array(j + 1) = Temp
End If
Next
Next
For i = 0 To (No_Of_Items - 1)
Console.Write(Value_Array(i) & ", ")
Next
Console.ReadKey()
End Sub
Function GenerateRandomNumber()
Dim Random_Number As Random = New Random()
Dim Random As Integer = Random_Number.Next(0, 101)
Return Random
End Function
Function CreateArray(No_Of_Items)
Dim Count As Integer = 0
Dim Temp_Array As New List(Of Integer)
Do Until Count = No_Of_Items
Temp_Array.Add(GenerateRandomNumber())
Count = Count + 1
Loop
Return Temp_Array
End Function
不要創建'新Random'每一次,一旦創建和GenerateRandomNumber' – Fabio
的'所有執行重用'以緊密循環或快速連續的方式初始化兩個隨機數生成器會創建兩個隨機數生成器,這些生成器可以生成相同的隨機數序列。 [...]爲了提高性能並避免無意中創建生成相同數字序列的單獨隨機數生成器,我們建議您創建一個隨機對象隨時間生成許多隨機數,而不是創建新的隨機對象以生成一個隨機數number.' [MSDN](https://msdn.microsoft.com/en-us/library/system。隨機(V = vs.110)的.aspx) –