Как реализовать перебор всех возомжных комбинаций для лотореи.
К примеру 6 из 45 (последовательность не играет роли)
001
002
003
...
999
012
013
...
789
Option Explicit
Dim StrIn As String
Sub Main()
StrIn = "123"
NextWord "", 1
End Sub
Sub NextWord(s As String, p As Integer)
Dim n As Integer
If p > Len(StrIn) Then
Debug.Print s
Else
For n = 0 To Len(s)
NextWord Left(s, n) + Mid(StrIn, p, 1) + Right(s, Len(s) - n), p + 1
Next n
End If
End Sub
321
231
213
312
132
123
Lunatic писал(а):тут перестановка в пределах строки
Option Explicit
Dim Ar() As Long
'Лотерея lMin из lMax (3 из 5)
Const lMin = 3
Const lMax = 5
Sub Main()
ReDim Ar(1 To lMin)
Lot lMin, lMax
End Sub
Sub Lot(ByVal Min As Long, ByVal Max As Long)
Dim n As Long, k As Long
For n = Min To Max
Ar(Min) = n
If Min > 1 Then
Lot Min - 1, n - 1
Else
For k = 1 To lMin
Debug.Print Ar(k),
Next k
Debug.Print
End If
Next n
End Sub
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 105