Комбинаторика

Тема в разделе "Свободное общение", создана пользователем domik, 25 сен 2007.

Статус темы:
Закрыта.
  1. domik

    domik Гость

    короче есть двумерный массив в делфи забитый рандомно, размерность задается любая

    например
    16 90 68
    23 12 48
    88 55 44
    41 35 94
    0 77 8

    вот как мне сделать все возможные N-ки чисел(сколько столбцов такая N-ка, в данном случае 3), в N-ке должно быть одно число из каждого столбика(два числа из одного столбика не могут быть), перестановки внутри N-ки не важны, то есть должно будет получится такие 3-ки чисел для этого примера.

    16 90 68
    16 90 48
    16 90 44
    16 90 94
    16 90 8
    16 12 68
    16 12 48
    16 12 44
    16 12 94
    16 12 8
    16 55 68
    16 55 48
    16 55 44
    16 55 94
    16 55 8
    .............
    23 90 68
    23 90 48
    ..............
    0 77 68
    0 77 48
    0 77 44
    0 77 94
    0 77 8

    вот, подскажите плз, завтра сдавать нужно, не знаю как этот алгоритм сделать...второй день парюсь, подозреваю что там должна быть рекурсия в рекурсии...
     
  2. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    Рекурсия
     
  3. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    перебором батенька=)
     
  4. domik

    domik Гость

    я в курсе что рекурсия, не могу её написать...

    Для: Kmet
    а если будет 100 на 100 массив?
     
  5. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    Для: domik
    ну будет, и?
     
  6. domik

    domik Гость

    это будет перебор в N!
     
  7. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    и будет N*M.
    эту задачу с другой сложность не решить
     
  8. domik

    domik Гость

    ок, ошибся, но это не меняет дела...не могу написать эту рекурсию
     
  9. Kmet

    Kmet Well-Known Member

    Регистрация:
    25 май 2006
    Сообщения:
    1.017
    Симпатии:
    1
    извиняюсь за выражение.... а на х..я вам рекурсия? это элементарная задача отлично решается иттреационным способом
     
  10. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    На олимпиадах я много баллов брал на рекурсиях - работает быстро и без особых проблем. Для меня - самый простой способ.. обычный рекурсивный перебор.
     
  11. domik

    domik Гость

    пробую написать ) надеюсь что нить получится )
     
  12. Normann

    Normann Well-Known Member

    Регистрация:
    9 авг 2007
    Сообщения:
    168
    Симпатии:
    2
    Для: Acorn
    Извините, чето не догоняю, а как такая задача решается путем рекурсии?
     
Статус темы:
Закрыта.

Поделиться этой страницей