我是一位初学VB的,有许多问题还需要向各位虚心请教。多谢各位朋友。
我的不解问题是:如何在程序中实现特定数字的排列组合。例如:457216 这6个数字,一定有N种排列组合的,可以是457162、457261、475216、472516等等N种可能出现的组合。我的这个问题如何在VB中解决?有没有什么代码?                                              再次感谢各位了

解决方案 »

  1.   

    Private Sub Command1_Click()
    rank "457216", List1
    End SubSub rank(ByVal x As String, lst As ListBox) '将字符串X所有排列列入LST中。
    Dim temp As New Collection
    Dim all As New Collection
    Dim i As Long, j As Long, k As Long
    temp.Add Left(x, 1)
    k = 1
    Do While k < Len(x)
    k = k + 1
    Set all = Nothing
    For i = 1 To temp.Count
    For j = 0 To Len(temp(i))
    all.Add Left(temp(i), j) & Mid(x, k, 1) & Right(temp(i), (Len(temp(i)) - j))
    Next
    Next
    Set temp = all
    Loop
    lst.Clear
    For i = 1 To temp.Count
    lst.AddItem temp(i)
    Next
    Set temp = Nothing
    Set all = Nothing
    MsgBox "共有" & lst.ListCount & "种排列!"
    End Sub
      

  2.   

    谢谢楼上的朋友的帮助,不过我还有个问题,那就是如果数字457216这个数字组合不是一个特定的数值,假如是随机的数字,或者说是由用户自行选择的6个数字而组成的组合,那么rank "457216", List1
    "  "中的代码应该如何定义呢?另外组合出来的N种组合,能不能按照同位相等,例472、426等排列下来,如何定义前4位或者前3位相同的组合显示出来,按照位数相同排列下来呢?如何定义?
    多谢各位高手!!!
      

  3.   

    Private Sub Command1_Click()
    rank text1.text,List1
    'rank cstr(int(rnd*100000)),list1
    'rank "☆★○●▲△※",list1
    'rank "中华人民共和国",list1End Sub你想做字典?