Holey_yan

[VB.NET] Make_RandomIntNumberArrayWithoutReplacement

Nov 11th, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.35 KB | None | 0 0
  1. Module Module1
  2.  
  3.     Sub Main()
  4.         Make_Random_Number_Without_Replacement_1(RandomRange:=50)
  5.         Make_Random_Number_Without_Replacement_2(RandomRange:=50)
  6.         Console.ReadKey()
  7.     End Sub
  8.  
  9.     ''' <summary>
  10.     ''' 產生不重複亂數陣列的函式
  11.     ''' </summary>
  12.     ''' <param name="RandomRange">亂數範圍 (由 0 開始)</param>
  13.     Sub Make_Random_Number_Without_Replacement_1(ByVal RandomRange As Integer)
  14.         ' Refresh
  15.         Dim RandomInt(RandomRange - 1) As Integer
  16.         For i As Integer = 0 To RandomRange - 1 Step 1
  17.             RandomInt(i) = i
  18.         Next
  19.         ' Show
  20.         Print_Random_Array(RandomInt)
  21.  
  22.         ' Make Random Number Without Replacement
  23.         Dim ran As New Random
  24.         For i As Integer = 0 To 100 Step 1
  25.             Dim a As Integer = ran.Next(RandomRange)
  26.             Dim b As Integer = ran.Next(RandomRange)
  27.             Dim tmp As Integer = RandomInt(a)
  28.             RandomInt(a) = RandomInt(b) : RandomInt(b) = tmp
  29.         Next
  30.         ' Show
  31.         Print_Random_Array(RandomInt)
  32.     End Sub
  33.  
  34.     ''' <summary>
  35.     ''' 產生不重複亂數陣列的函式
  36.     ''' </summary>
  37.     ''' <param name="RandomRange">亂數範圍 (由 0 開始)</param>
  38.     Sub Make_Random_Number_Without_Replacement_2(ByVal RandomRange As Integer)
  39.         ' Refresh
  40.         Dim RandomInt(RandomRange - 1) As Integer
  41.  
  42.         ' Make Random Number Without Replacement
  43.         Dim ran As New Random
  44.         For i As Integer = 0 To RandomRange - 1 Step 1
  45.             Do
  46.                 RandomInt(i) = ran.Next(RandomRange)
  47.                 For j As Integer = 0 To i - 1 Step 1
  48.                     If RandomInt(i) = RandomInt(j) Then
  49.                         Continue Do
  50.                     End If
  51.                 Next
  52.                 Exit Do
  53.             Loop
  54.         Next
  55.     ' Show
  56.         Print_Random_Array(RandomInt)
  57.     End Sub
  58.  
  59.     ''' <summary>
  60.     ''' 將陣列輸出顯示至主控台視窗上
  61.     ''' </summary>
  62.     ''' <param name="RandomInt">整數一維陣列</param>
  63.     Sub Print_Random_Array(ByVal RandomInt() As Integer)
  64.         For i As Integer = 1 To RandomInt.Length Step 1
  65.             Console.Write(String.Format("{0:00}", RandomInt(i - 1)) & " ")
  66.             If ((i > 0) And (i Mod 5 = 0)) Then Console.WriteLine()
  67.         Next
  68.         Console.WriteLine()
  69.     End Sub
  70.  
  71. End Module
Advertisement
Add Comment
Please, Sign In to add comment