| MaximuS_G 
 Junior Member
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору SERGE_BLIZNUK
 
 Цитата:
 | Вопрос такой - ограничения на количество чисел и на вложенность (т.е. сколько слагаемых в найденном сочетании может быть) есть? | 
 Количество чисел - 11 - это то, что требуется в данный момент. Второй вопрос, что я не могу понять как составлять эти комбинации... как считать знаю из комбинаторики, а как составлять... К вопросу, если можна давайте установим ограничение 11 чисел. По-поводу вложенности. Я думаю начиная от одного (то есть число само уже сразу может входить в интервал, или сразу выпадать из него - как например 5000) и заканчивая всеми, то есть 11-ти. В данной задачи видно, что навряд ли будет больше 5ти, так как сумма наименьших пяти равна 3350, если добавить шестой = 4350, уже вылетает... по-этому если это имеет значения не для производительности, а для написания, то можем задать 5.
 Итак ограничения: кол-во чисел - 11, количество вложенных чисел - 5.
 
 Цитата:
 | И ещё - задача стоит, чтобы найти варианты, или чтобы найти ВСЕ возможные варианты? | 
 Мне кажется, что любое дело надо доводить до конца, поэтому желательно найти ВСЕ.
 Вот такой код мне предложили на другом сайте:
 
 Код:
 | Const n& = 11, la& = 3888, ra& = 4176 Dim a(1 To n)
 a(1) = 1000: a(2) = 3000: a(3) = 2200: a(4) = 1000: a(5) = 5000: a(6) = 300
 a(7) = 250: a(8) = 1000: a(9) = 800: a(10) = 1400: a(11) = 2300
 Dim c(1 To n)
 Dim i&, j&, p&, m&, r&, u&, s$
 For m = 2 To 11
 For i = 1 To m
 c(i) = i
 Next
 p = n - m: r = m - 1
 L1:
 u = 0: s = ""
 For i = 1 To m
 u = u + a(c(i))
 s = s & a(c(i)) & "(" & c(i) & ")+"
 Next
 If u >= la And u <= ra Then
 Debug.Print Left$(s, Len(s) - 1) & "=" & u
 End If
 For i = m To 1 Step -1
 If c(i) <> p + i Then
 c(i) = c(i) + 1
 For j = i To r
 c(j + 1) = c(j) + 1
 Next
 GoTo L1
 End If
 Next
 Next
 | 
 Вот небольшой комментарий автора:
 "Здесь строятся сочетания не самих элементов, расположенных в массиве, а их индексов. После получения сочетаний легко перейти к самим элементам"
 Пока ни как не соображу как же сочетания формируются... мне бы на простом пример... вот есть 4 числа... вот так их складываем...
   
 |