1、生成一个随机数 设为x,0<x <=1 2、x * 20并取整 = i 3、i 与已经选取的数比较,如果相等则重新选,否则选下一个数
这样比较简单: Private Sub Command1_Click() Dim x As New Collection, a(0 To 4) As String For i = 1 To 20 x.Add i Next For i = 0 To 4 Randomize num = Int(Rnd * x.Count + 1) a(i) = Str(x(num)) x.Remove num Next MsgBox Join(a(), ","), 64, "5 random number between 1 and 20" End Sub
怎么又是一道,早说就行了呀 再看一次。先将20个数排序,然后来段程序就行了,看下面的。 for i= 1 to 20 for j= i+1 to 20 for k= j+1 to 20 for m= k+1 to 20 for n= m+1 to 20 print a[i],a[j],a[k],a[m],a[n] next next next next next就可以了呀。要把中间相同的数设一个记号就行了。也就是说要注意 a[i]=a[i+1]的情况。自己想办法吧。有问题就留一个email
呵呵,五层循环 Private Sub Command1_Click() For i = 1 To 16 For j = i + 1 To 17 For k = j + 1 To 18 For m = k + 1 To 19 For n = m + 1 To 20 List1.AddItem i & "," & j & "," & k & "," & m & "," & n Next Next Next Next Next MsgBox List1.ListCount End Sub
TO huobao2003(): 你比我还感兴趣这个问题呀,两个地方都晕了呀。不要这样吧。有时间和我聊聊呀。 My QQ Number: 33761697,加我呀。
2、x * 20并取整 = i
3、i 与已经选取的数比较,如果相等则重新选,否则选下一个数
Private Sub Command1_Click()
Dim x As New Collection, a(0 To 4) As String
For i = 1 To 20
x.Add i
Next
For i = 0 To 4
Randomize
num = Int(Rnd * x.Count + 1)
a(i) = Str(x(num))
x.Remove num
Next
MsgBox Join(a(), ","), 64, "5 random number between 1 and 20"
End Sub
再看一次。先将20个数排序,然后来段程序就行了,看下面的。
for i= 1 to 20
for j= i+1 to 20
for k= j+1 to 20
for m= k+1 to 20
for n= m+1 to 20
print a[i],a[j],a[k],a[m],a[n]
next
next
next
next
next就可以了呀。要把中间相同的数设一个记号就行了。也就是说要注意 a[i]=a[i+1]的情况。自己想办法吧。有问题就留一个email
Private Sub Command1_Click() For i = 1 To 16
For j = i + 1 To 17
For k = j + 1 To 18
For m = k + 1 To 19
For n = m + 1 To 20
List1.AddItem i & "," & j & "," & k & "," & m & "," & n
Next
Next
Next
Next
Next
MsgBox List1.ListCount
End Sub
你比我还感兴趣这个问题呀,两个地方都晕了呀。不要这样吧。有时间和我聊聊呀。
My QQ Number: 33761697,加我呀。