那位大虾能给想个好的算法,在20个数中任选出五个,五个数中不能重复,且不考虑顺序,即1 2 3 4 5 和5 4 3 2 1视为一种情况。
                       我的信箱:[email protected]

解决方案 »

  1.   

    1、生成一个随机数 设为x,0<x <=1
    2、x * 20并取整 = i
    3、i 与已经选取的数比较,如果相等则重新选,否则选下一个数
      

  2.   

    这样比较简单:
    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
      

  3.   

    怎么又是一道,早说就行了呀
    再看一次。先将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
      

  4.   

    呵呵,五层循环
    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
      

  5.   

    TO  huobao2003():
    你比我还感兴趣这个问题呀,两个地方都晕了呀。不要这样吧。有时间和我聊聊呀。
    My QQ Number: 33761697,加我呀。