Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

алгоритм перебора

алгоритм перебора
Я
   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
...
 
 
   Wobland
 
1 - 19.01.13 - 21:13
это называется размещение, вроде. ищи
   Wobland
 
2 - 19.01.13 - 21:33
   ШтушаКутуша
 
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
   ШтушаКутуша
 
4 - 19.01.13 - 21:48
+3 то есть правильнее не размещений, а сочетаний
   Wobland
 
5 - 19.01.13 - 21:54
ну да, похоже, ему сочетания нужны

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует