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
1800
Зачем тогда что-то изобретать. Стоит взять эффективный алгоритм нахождения всех перестановок, и для каждой организовать цикл проверок с вставлением дополнительного элемента, как я писал выше. Вместо $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
1800
Берем алгоритм для нахождения всех перестановок из 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

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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