不知道大家买不买足彩。
足彩现在一共要猜14场比赛 
我想把一个复式里面的每个排列都一行一行的排出来
放到一个文本文件里面。
比如我想买的复式是
31,31,31,31,31,31,31,31,31,31,31,31,31,31
那么就一共有2的14次方次种组合 
每一个组合我都想排列出来?
有没有快速的,好的方法。
关键是速度要快的。
谢了。
有兴趣可以加我QQ398188218

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a(13) As Integer, b(13) As String, c(16383) As String, i As Integer, j As Integer
    For i = 0 To 13
    a(i) = 2 ^ i
    Next
    For i = 0 To 16383
    For j = 0 To 13
    b(j) = i And a(j)
    b(j) = IIf(b(j) > 0, 1, 3)
    Next
    c(i) = i + 1 & vbTab & Join(b, ",")
    Next
    Open "d:\1234.txt" For Binary As #1
    Put #1, , Join(c, vbCrLf)
    Close #1
    MsgBox "ok"
    End Sub
      

  2.   

    northwolves(狼行天下)的针对你那题的例子都有了,楼主应该想一想就出来了~
    你要是准备用狼行给出的算法,你可以把他算法里针对你顶贴里的数字(那13个数字),用变量代替!
    每次程序运行手动输入13个数接着赋值给一个数组(a(13)),或13 个变量~!
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
    Dim x(13) As String '元素个数随你自己定义
    Dim i As Long, temp() As String
    For i = 0 To 13 '每个复式组合自己定义
    x(i) = IIf(i < 4, 310, 31)
    Next
    getall 14, x, temp, "d:\123.txt" '将全部组合情况通过临时数组temp保存到"d:\123.txt"
    End Sub
    Sub getall(ByVal n As Integer, ByRef a() As String, ByRef temp() As String, Optional ByVal txtpath As String = "d:\123.txt") '将数组a()取前n个元素,每个元素分别取1位,组成的所有新组合保存到TEMP(),并保存到文本文件txtpath(默认d:\123.txt)
    Dim i As Long, j As Long, length() As Integer, max As Long, s() As StringReDim length(1 To n) '每个元素的位数
    For i = 1 To n
    length(i) = Len(a(i - 1))
    Next
    If n = 1 Then '取1个数的情况
    max = length(1)
    ReDim temp(1 To max)
    For i = 1 To max
    temp(i) = Mid(a(0), i, 1)
    Next
    End IfIf n > 1 Then
    getall n - 1, a, s '递归
    max = UBound(s)
    ReDim temp(1 To max * length(n))
    For i = 1 To max
    For j = 1 To length(n)
    temp((j - 1) * max + i) = s(i) & "," & Mid(a(n - 1), j, 1)
    Next
    Next
    Erase s
    End IfIf n = UBound(a) + 1 Then
    If Dir(txtpath) > "" Then Kill txtpath
    Open txtpath For Binary As #1
    Put #1, , Join(temp, vbCrLf)
    Close #1
    MsgBox UBound(temp) & " 种组合!", vbInformation, "Ok"
    Erase temp
    End If
    End Sub