Я хотел бы сгенерировать все перестановки списка, но я бы хотел отфильтровать некоторые перестановки, прежде чем они будут добавлены в стек или сохранены где-либо.
Я отфильтрую перестановки на основе некоторых пользовательских специальных правил.
Другими словами, я хотел бы создать список перестановок большого списка (50-300 элементов), но я хотел бы выбросить большинство сгенерированных перестановок прямо во время процесса (я знаю, чтополное число перестановок N!
).
Я пробовал Ruby с его Array.permutation.to_a
, но похоже, что он поддерживает полный стек во время выполнения, поэтому у меня закончилась память (8 ГБ) довольнобыстро.
Я также пробовал это решение Erlang, но, похоже, оно работает аналогично предыдущему Ruby.
Есть ли какие-либо нестандартные решения этой проблемы?
PS Я прочитал это и это , но, к сожалению, я не знаю C / C ++.