|
如果只要生成有限种组合数,比较简单。- Sub tt()
- Dim arr(1 To 49), N&, L%, x1$, x2$
- For i = 1 To 49: arr(i) = i: Next
- N = InputBox("请输入需要生成的组合数", , 20)
- ReDim brr(1 To N, 2)
- Set d = CreateObject("scripting.dictionary")
- For k = 1 To N
- L = 49
- crr = arr
- x1 = "": x2 = ""
- For i = 1 To 48
- p = Int(Rnd * L + 1)
- tmp = crr(p)
- crr(p) = crr(L)
- L = L - 1
- If L >= 25 Then x1 = x1 & "," & tmp Else x2 = x2 & "," & tmp
- Next
- If Not d.exists(x1 & x2) Then
- d(x1 & x2) = ""
- brr(k, 0) = k
- brr(k, 1) = Mid(x1, 2)
- brr(k, 2) = Mid(x2, 2)
- Else
- k = k - 1
- End If
- Next
- [a:c].ClearContents
- [a1].Resize(N, 3) = brr
- End Sub
复制代码 |
|