2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Получить все перестановки исключая "симметричные"
Сообщение03.08.2011, 09:58 


02/08/11
8
Проверять. Как обычно - короткий выбрать. n переменное, где-то до 10-15 объектов. Время перебора в худшем случае выходит за рамки желаемого. Вот и хочется сократить по возможности.

 Профиль  
                  
 
 Re: Получить все перестановки исключая "симметричные"
Сообщение03.08.2011, 10:38 
Заслуженный участник


25/02/11
1786
Зачем тогда что-то изобретать. Стоит взять эффективный алгоритм нахождения всех перестановок, и для каждой организовать цикл проверок с вставлением дополнительного элемента, как я писал выше. Вместо $1$ можно взять $n$ и добавлять справа, пока этот элемент правее $n-1$. Если перестановка хранится в виде списка, то вставить элемент легко. Либо походу организовать постоение маршрута с вставкой. Никаких лишних действий в этом алгоритме вроде нет.

 Профиль  
                  
 
 Re: Получить все перестановки исключая "симметричные"
Сообщение03.08.2011, 11:32 


02/08/11
8
Vince Diesel в сообщении #473100 писал(а):
Зачем тогда что-то изобретать. Стоит взять эффективный алгоритм нахождения всех перестановок, и для каждой организовать цикл проверок с вставлением дополнительного элемента, как я писал выше. Вместо $1$ можно взять $n$ и добавлять справа, пока этот элемент правее $n-1$. Если перестановка хранится в виде списка, то вставить элемент легко. Либо походу организовать постоение маршрута с вставкой. Никаких лишних действий в этом алгоритме вроде нет.

Я все-таки не очень понял, что и куда ты предлагаешь вставлять. Из примера видно, что 1 не всегда левее 2. А вот вставить в известный алгоритм генерации перестановок проверку, что крайний правый элемент больше крайнего левого - это может и на самом деле достаточно будет. Проверю.

 Профиль  
                  
 
 Re: Получить все перестановки исключая "симметричные"
Сообщение03.08.2011, 12:08 
Заслуженный участник


25/02/11
1786
Берем алгоритм для нахождения всех перестановок из 3х элементов. Затем для каждой перестановки в цикле добавляем по очереди $4$ на каждое место правее 3. Получим:
$\{1,2,3\}\to\{1,2,3,4\}$,
$\{1,3,2\}\to\{1,3,2,4\},\{1,3,4,2\}$,
$\{2,1,3\}\to\{2,1,3,4\}$,
$\{2,3,1\}\to\{2,3,1,4\},\{2,3,4,1\}$,
$\{3,1,2\}\to\{3,1,2,4\},\{3,1,4,2\},\{3,4,1,2\}$,
$\{3,2,1\}\to\{3,2,1,4\},\{3,2,4,1\},\{3,4,2,1\}$.

 Профиль  
                  
 
 Re: Получить все перестановки исключая "симметричные"
Сообщение03.08.2011, 12:24 


02/08/11
8
Спасибо, понял! До меня на "живых" цифрах лучше доходит! :)
Всем спасибо за идеи! Пошел воплощать.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group