比如对a,a,a,b,b,b,c,c,c,d,d,d这12个字符进行任意的有序的组合,每三个一组.如aaa,abb,abc,cba等等,怎样用vb编程实现?

解决方案 »

  1.   

    是不是排列组合中的
      cccccccccc        44
     cc        cc      4 4
    cc           c    44444
    cc                   4 
    cc
    cc                33333
    cc            c      3
     ccc       ccc     3333
       ccccccccc           3
                      33333
    ??????????????????????????????????????????????????????????????
    如果是另外的意思:即a b c d 四个字符,放在三个容器中,允许aaa这种组合,则太简单了
    组合数目=4*4*4=4^3
      

  2.   

    dragoncity(自己发工资) :
    组合的种数当然能算出来,我是说,计算机怎样将aaa,abb,abc,cba这样的组合算出来.
      

  3.   

    根据需要不同,选择不同的范围
    Private Sub command1_click()
        ReDim n(1 To 4, 1 To 4, 1 To 4) As String
        
        Dim i As Integer, j As Integer, k As Integer
        For i = 1 To 4
            For j = 1 To 4
                For k = 1 To 4
                    n(i, j, k) = MyChar(i) & MyChar(j) & MyChar(k)
                    Debug.Print n(i, j, k)
                    
                Next k
            Next j
        Next i
    End Sub
    或者:
    Private Sub command1_click()
        ReDim n(1 To 4, 1 To 4, 1 To 4) As String
        
        Dim i As Integer, j As Integer, k As Integer
        For i = 1 To 4
            For j = 1 To 3
                For k = 1 To 2
                    n(i, j, k) = MyChar(i) & MyChar(j) & MyChar(k)
                    Debug.Print n(i, j, k)
                    
                Next k
            Next j
        Next i
    End SubOK?
      

  4.   

    补充:漏了下面的代码:
    Private Property Get MyChar(index As Integer) As String
        MyChar = Choose(index, "a", "b", "c", "d")
    End Property
      

  5.   

    对了,说错了,不好意思,排列无序,也有这样的情况:cba,dca等.
      

  6.   

    请明确一下:"排列无序"是不是指abc与cba是同一种组合?
      

  7.   

    谢谢dragoncity(自己发工资),你的代码给了我启发,好决定给你100分.马上给.
      

  8.   

    那么,我上面的代码
      根据需要不同,选择不同的范围
    Private Sub command1_click()
        ReDim n(1 To 4, 1 To 4, 1 To 4) As String
        
        Dim i As Integer, j As Integer, k As Integer
        For i = 1 To 4
            For j = 1 To 4
                For k = 1 To 4
                    n(i, j, k) = MyChar(i) & MyChar(j) & MyChar(k)
                    Debug.Print n(i, j, k)
                    
                Next k
            Next j
        Next i
    End Sub
    是否适合你的需要?
     
      

  9.   

    另外,如果对你有帮助,请一定回复我的一个帖子(差一点就100个回复了,拜托):
    http://www.csdn.net/expert/topic/654/654811.xml?temp=.8152735
    主题:  我自认VB水平不错,请大家给我估估价!