powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / перебор комбинаций m по 2, m по 3, ...., m по m
6 сообщений из 6, страница 1 из 1
перебор комбинаций m по 2, m по 3, ...., m по m
    #33602644
V17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V17
Гость
Может кто подскажет алгоритм перебора всех комбинаций по 2, по 3 , ... по N.
N по 2 - это два цикла (2-вложенный).
Код: plaintext
1.
2.
3.
for i= 1  to N- 1 
  for j=i+ 1  to N
  Next j
Next i
N по 3 - соответственно 3 цикла.
...
Но как сделать N по N (и вообще все комбинации по k , где k = 2, ..., N) ?
...
Рейтинг: 0 / 0
перебор комбинаций m по 2, m по 3, ...., m по m
    #33603310
madgol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекурсия
...
Рейтинг: 0 / 0
перебор комбинаций m по 2, m по 3, ...., m по m
    #33603753
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
madgolРекурсия
Я бы не советовал. А если точнее, для алгоритмических языков крайне не советовал бы для чего-то серьезнее практикума в школе.

V17 Может кто подскажет алгоритм перебора всех комбинаций по 2, по 3 , ... по N. ....... Но как сделать N по N (и вообще все комбинации по k , где k = 2, ..., N) ?
Назову два стандартных подхода. Во-первых, в ряде случаев легко можно построить отображение требуемого множества на подмножество множества натуральных чисел. Например, если нужно перебрать все возможные сочетания N чисел (или N любых элементов), это то же самое, что пройти цикл от 0 до 2^N-1, рассматривая переменную цикла как набор из N битовых флагов. Другой подход - определить понятия "текущее состояние" и "переход к следующему состоянию". Например, если требуется перебрать все сочетания из N по K, достаточно сделать массив из K элементов, инициированных 1, 2, 3, ... K и сделать код перехода к следующему состоянию наподобие прибавления единицы "столбиком": увеличиваем последнее значение, если оно стало больше N, увеличиваем предпоследнее, а последнее сбрасываем в "предпоследнее плюс один" итп.
...
Рейтинг: 0 / 0
перебор комбинаций m по 2, m по 3, ...., m по m
    #33605151
V17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V17
Гость
Первый подход абсолютно верен!
Второй подход - это то же что описал я - лишь одина группа вложенных циклов из N групп. Вопрос был как организовать N групп циклов - ведь я не могу динамически в проге создавать вложенность из N циклов.

Впрочем задача уже решена, т.к. хватило групп 7 циклов (написал их последовательно - вначале 1, потом 2 вложенных цикла, потом 3, ... 7 вложенных циклов). Дальше по задаче смысла нет..
...
Рейтинг: 0 / 0
перебор комбинаций m по 2, m по 3, ...., m по m
    #33605372
AL_KIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V17...- ведь я не могу динамически в проге создавать вложенность из N циклов...

-- вам ответили -- рекурсия, используется для перебора иерархических (древовидных) данных,

но для вашего случая скорее подойдет описанный выше softwarer
способ
...
Рейтинг: 0 / 0
перебор комбинаций m по 2, m по 3, ...., m по m
    #33606452
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V17Первый подход абсолютно верен!
Спасибо на добром слове.

V17Второй подход - это то же что описал я
Нет, не то же.

V17Впрочем задача уже решена, т.к. хватило групп 7 циклов
В хорошей книге Йодана в приложениях давалась подобная задача.. и был комментарий, что некоторые из программистов решали ее с помощью 48 вложенных циклов.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / перебор комбинаций m по 2, m по 3, ...., m по m
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]