2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 00:34 
Известно, что количество перестановок с повторениями равно частному от деления факториала количества элементов на произведение факториалов коэффициентов повторения элементов. Также известны несколько эффективных алгоритмов получения перестановок с повторениями - они генерируют матрицу, каждая строка которой сразу является уникальной перестановкой (удается избежать построения, а значит и последующего отсева тождественных строк).
Однако, матрица перестановок с повторениями содержит множество строк, которые совпадают друг с другом при циклическом сдвиге - подобно тому, как совпадает с самим собой ожерелье при вращении. Например, для множества элементов [2 2 2 2 3] матрица уникальных перестановок содержит 5 строк и все они отличаются лишь циклическим сдвигом. Если определить, что две перестановки, которые отличаются лишь циклическим сдвигом, являются тождественными, то естественным образом возникают следующие вопросы, которые и предлагается обсудить:
1. Каково количество уникальных перестановок с повторениями, если две перестановки отличающиеся лишь циклическим сдвигом рассматриваются как тождественные?
2. Какова может быть принципиальная схема эффективного алгоритма генерации множества таких уникальных перестановок с повторениями?

 
 
 
 Re: Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 04:36 
http://www.cis.uoguelph.ca/~sawada/papers/alph.pdf

 
 
 
 Re: Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 10:30 
Это просто великолепно! Нет слов. Я упустил из виду, что вопрос можно свести именно к эффективному алгоритму генерации бинарных ожерелий. Формула для вычисления их количества также известна. Огромное спасибо!

 
 
 
 Re: Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 14:41 
tolstopuz в сообщении #1457548 писал(а):
http://www.cis.uoguelph.ca/~sawada/papers/alph.pdf

Досадно, что ссылка на с-код в конце статьи нерабочая. Придется разбираться.

 
 
 
 Re: Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 15:47 
Вот эта вроде работает.

http://www.cis.uoguelph.ca/~sawada/programs.html

 
 
 
 Re: Эффективный алгоритм получения перестановок с повторениями
Сообщение24.04.2020, 20:26 
Да, работает! Спасибо огромное!

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group