Вопросы с тегом «combinatorics»

113
Быстрая перестановка -> число -> алгоритмы сопоставления перестановок

У меня есть n элементов. Для примера, скажем, 7 элементов, 1234567. Я знаю, что их 7! = 5040 возможных перестановок этих 7 элементов. Мне нужен быстрый алгоритм, состоящий из двух функций: f (число) отображает число от 0 до 5039 в уникальную перестановку, а f '(перестановка) отображает перестановку...

87
Ленивая генерация перестановок

Я ищу алгоритм для генерации перестановок набора таким образом, чтобы я мог сделать их ленивый список в Clojure. т.е. я хотел бы перебрать список перестановок, где каждая перестановка не вычисляется до тех пор, пока я ее не запрошу, и все перестановки не должны храниться в памяти сразу. В качестве...

87
Создание перестановок с повторениями

Я знаю об itertools, но кажется, что он может генерировать только перестановки без повторений. Например, я хотел бы сгенерировать все возможные броски кубиков для 2 кубиков. Поэтому мне нужны все перестановки размера 2 из [1, 2, 3, 4, 5, 6], включая повторения: (1, 1), (1, 2), (2, 1) ... и т. Д....

87
Сгенерировать все перестановки списка без смежных равных элементов

Когда мы сортируем список, например a = [1,2,3,3,2,2,1] sorted(a) => [1, 1, 2, 2, 2, 3, 3] в результирующем списке всегда соседствуют одинаковые элементы. Как я могу выполнить противоположную задачу - перетасовать список так, чтобы одинаковые элементы никогда (или как можно реже) находились...