Перебор комбинаций

Анастасия

Новичок
Перебор комбинаций

Подвисла на одной задаче. Надеюсь, на вашу помощь.

Задача: найти все возможные комбинации по N элементов из M (последовательность элементов в комбинации не имеет значения).

Приведу простой примерчик. Для N=2, M=3:
Элементы: a, b, c
Комбинации:
1: a, b
2: a, c
3: b, c

Подскажите, в каком направлении копать. Спасибо!
 

zerkms

TDD infected
Команда форума
создать временную таблицу в mysql с 1 столбцом
заполнить её 3 значениями a, b, c
дважды прибить её саму к себе через INNER JOIN без ON
 

Анастасия

Новичок
Вариант. Но хотелось бы более изящнее решение с учетом того, что N и M могуть быть любые.
 

DiMA

php.spb.ru
Команда форума
что значит "найти"? Они и так есть. Чтобы вывести на экран или куда-либо - пара вложенных циклов с перебором.
 

Анастасия

Новичок
Да, нужно вывести на экран или сохранить в виде массива. Вот с циклами как раз и проблема. Можете описать принцип перебора?
 

Farsh

~ on ~ high ~ wave ~
Анастасия
Сам ток вчера над этим сидел ;)
http://pastebin.org/18655
Простой и понятный пример, фиксированное значение символов. Если нужно от и до, то нетрудно чуток подправить. Есть также пример, который трудно понять, но работает в 1.5 раза быстрее ;)

p.s. проверок на ошибки там нет, пример использования внизу
 

alexv

Новичок
а погуглить "алгоритм полный перебор" ?
самое простое - рекурсия глубиной N
 
Сверху