![]() |
|
![]() ![]() ![]() |
|
DASTAD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.10.2009 Репутация: нет Всего: 1 |
Прошу помощи.
Есть вектор N действительных значений. A = [a1, a2, ... an] Как лучше реализовать универсальный перебор различных комбинаций элементов(пары, двойк, тройки, четверки, пятерки и тд.) на проверку условия? Например, сумма элементов комбинации равна 1. Если, перебор комбинаций из одного элемента вектора - это 1 цикл вида: for i=1 to N if a[i]=1 then... ) Если перебор комбинаций пар элементов, то нужен двойной вложенный цикл (for i=1 to N for j=i to N if a[i]+a[j]=1 then...) Если, перебор комбинаций троек элеметов, то 3й вложеный цикл: for i=1 to N for j=i to N for k=j to N if a[i]+a[j]+a[k]=1 и тд А как это реализовать в одном алгоритме? |
|||
|
||||
Lipetsk |
|
|||
![]() в форме ;) ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 28.1.2009 Где: Липецк Репутация: 2 Всего: 5 |
используйте рекурсию
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Перебор сочетаний из N по M.
Есть простой и эффективный алгоритм перебора, погугли. -------------------- ... |
|||
|
||||
DASTAD |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 14.10.2009 Репутация: нет Всего: 1 |
нашел хороший рекурсивный алгоритм http://algolist.manual.ru/maths/combinat/seqnm.php но мне нужны неповторяющиеся комбинации нашел ![]()
Это сообщение отредактировал(а) DASTAD - 16.5.2013, 09:51 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |