Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
Может кто подскажет алгоритм перебора всех комбинаций по 2, по 3 , ... по N. N по 2 - это два цикла (2-вложенный). Код: plaintext 1. 2. 3. ... Но как сделать N по N (и вообще все комбинации по k , где k = 2, ..., N) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 15:13 |
|
||
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
Рекурсия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 17:57 |
|
||
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
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, увеличиваем предпоследнее, а последнее сбрасываем в "предпоследнее плюс один" итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 23:14 |
|
||
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
Первый подход абсолютно верен! Второй подход - это то же что описал я - лишь одина группа вложенных циклов из N групп. Вопрос был как организовать N групп циклов - ведь я не могу динамически в проге создавать вложенность из N циклов. Впрочем задача уже решена, т.к. хватило групп 7 циклов (написал их последовательно - вначале 1, потом 2 вложенных цикла, потом 3, ... 7 вложенных циклов). Дальше по задаче смысла нет.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 13:21 |
|
||
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
V17...- ведь я не могу динамически в проге создавать вложенность из N циклов... -- вам ответили -- рекурсия, используется для перебора иерархических (древовидных) данных, но для вашего случая скорее подойдет описанный выше softwarer способ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 14:08 |
|
||
|
перебор комбинаций m по 2, m по 3, ...., m по m
|
|||
|---|---|---|---|
|
#18+
V17Первый подход абсолютно верен! Спасибо на добром слове. V17Второй подход - это то же что описал я Нет, не то же. V17Впрочем задача уже решена, т.к. хватило групп 7 циклов В хорошей книге Йодана в приложениях давалась подобная задача.. и был комментарий, что некоторые из программистов решали ее с помощью 48 вложенных циклов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2006, 19:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33605151&tid=1347016]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 398ms |

| 0 / 0 |
