0
withoutname
19.01.13
✎
21:09
|
Люди добрые подскажите алгоритм
есть массив чисел, надо составить из них числа, например по 3 (с возможностью изменения).
пример
массив 1 3 5 7 12 26 34
1 3 5
1 3 7
1 3 12
1 3 26
1 3 34
3 5 7
3 5 12
3 5 26
3 5 34
...
|
|
3
ШтушаКутуша
19.01.13
✎
21:47
|
'размещения из n - элементов по к, например 7 элементов по 3
Sub ГенераторРазмещений(n As Long, k As Long, AA() As Long)
Dim i As Long, ii As Long, _
j As Long, p As Long
ii = Application.WorksheetFunction.Fact(n) / _
(Application.WorksheetFunction.Fact(k) * Application.WorksheetFunction.Fact(n - k))
ReDim a(k) As Long
ReDim AA(ii, k) As Long
For j = 1 To k
a(j) = j
Next j
p = k
For i = 1 To ii
For j = 1 To k
AA(i, j) = a(j)
Next j
If a(k) = n Then
p = p - 1
Else
p = k
End If
If p >= 1 Then
For j = k To p Step -1
a(j) = a(p) + j - p + 1
Next j
End If
Next i
End Sub
|
|