for I = 0 to 19 A[I] = I endforfor I = 0 to 9 J = Random(20 - I) B[I] = A[J] A[J] = A[20 - I] A[20 - I] = B[J] endfor
Private Sub Command1_Click() Dim a(10), b(20) Randomize For i = 1 To 20 b(i) = i Next For i = 1 To 10 j = Int(Rnd() * (10 - i + 1) + 1) a(i) = b(j) b(j) = b(10 - i + 1) Next Debug.Print "No Seat" For i = 1 To 10 Debug.Print i, a(i) Next End Sub ok?
Private Sub Command1_Click() Dim a(10), b(20) Randomize For i = 1 To 20 b(i) = i Next For i = 1 To 10 j = Int(Rnd() * (20 - i + 1) + 1) a(i) = b(j) b(j) = b(20 - i + 1) Next Debug.Print "No Seat" For i = 1 To 10 Debug.Print i, a(i) Next End Sub
这是一个取5次不重复数的例子: Private Sub Command1_Click() Dim a(1 To 30) As Integer Dim i As Integer Dim j As Integer Dim Str As String Dim k As Integer For i = 1 To 30 a(i) = i Next Randomize For i = 1 To 5 j = Rnd() * (30 - i) + 1 Str = Str & a(j) & "," k = a(31 - i) a(31 - i) = a(j) a(j) = k Next MsgBox Str End Sub
A[I] = I
endforfor I = 0 to 9
J = Random(20 - I)
B[I] = A[J]
A[J] = A[20 - I]
A[20 - I] = B[J]
endfor
Dim a(10), b(20)
Randomize
For i = 1 To 20
b(i) = i
Next
For i = 1 To 10
j = Int(Rnd() * (10 - i + 1) + 1)
a(i) = b(j)
b(j) = b(10 - i + 1)
Next
Debug.Print "No Seat"
For i = 1 To 10
Debug.Print i, a(i)
Next
End Sub
ok?
Dim a(10), b(20)
Randomize
For i = 1 To 20
b(i) = i
Next
For i = 1 To 10
j = Int(Rnd() * (20 - i + 1) + 1)
a(i) = b(j)
b(j) = b(20 - i + 1)
Next
Debug.Print "No Seat"
For i = 1 To 10
Debug.Print i, a(i)
Next
End Sub
Private Sub Command1_Click()
Dim a(1 To 30) As Integer
Dim i As Integer
Dim j As Integer
Dim Str As String
Dim k As Integer
For i = 1 To 30
a(i) = i
Next
Randomize
For i = 1 To 5
j = Rnd() * (30 - i) + 1
Str = Str & a(j) & ","
k = a(31 - i)
a(31 - i) = a(j)
a(j) = k
Next
MsgBox Str
End Sub