1. Заголовок темы должен быть информативным. В противном случае тема закрывается и удаляется ... 2. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 3. Одна тема - один вопрос (задача) 4.Спрашивайте и отвечайте четко и по существу!!!
В общем, достаточно давно я встретился с такой сложной темой (для меня) как перестановки. Сколько я не искал литературы на эту темы, но ничего стоющего не нашёл. Поэтому обратился именно к Вам.
Не могли бы Вы объяснить в чём основной смысл, и как они выполняются?
Сообщение отредактировано: Lapp -
--------------------
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Теперь мы имеем множество в новом порядке. Вопрос: какой должна быть перестановка, чтобы вернуться к старому порядку? Конструируем эту перестановку: на первое место надо поставить a, а оно у нас имеет номер 3, на второе место надо поставить b, а оно у нас имеет номер 1, на третье место надо поставить c, а оно у нас имеет номер 2. Записывает это в виде перестановки:
3 1 2
Из этого немного не понял... Если у нас имеется изначально 2 3 1, то после вашего алгоритма она получается у меня пдругому... 2 3 1
1 3 2 (на первое место надо поставить a, а оно у нас имеет номер 3,) 3 1 2 (на второе место надо поставить b, а оно у нас имеет номер 1,) 3 2 1 (на третье место надо поставить c, а оно у нас имеет номер 2.)
Или я ошибаюсь?
--------------------
♣♣♣ "Себя великим не считай, гордясь величьем предков, Величья не добудешь ты и золота ценою! Хоть светит на небе луна, но отраженным светом - Чужою славой не живи, не будь второй луною!!!" ♣♣♣
Ты не понял постановку задачи. Попробую объяснить ее.
Есть упорядоченное множество. В моем примере я взял множество, состоящее из первых трех латинских букв и расставил их в естественном порядке:
a b c
Именно с этим множеством мы будем работать. Далее, нам дают некоторое правило, по которому мы будем переставлять буквы. Правило записывается так:
2 3 1
Первой стоит двойка. Это значит, что на первое место надо поставить второй элемент множества (у нас это b). Второй стоит тройка. Это значит, что на второе место надо поставить третий элемент множества (у нас это c). Третьей стоит единица. Это значит, что на третье место надо поставить первый элемент множества (у нас это a). В результате получаем:
b c a
Тут важно, что тройка букв - это само множество, а тройка чисел - это запись операции над этим множеством. Как, например, над обычными числами можно придумать операцию Oper=*2, которая будет обчное число умножать на два. Или, скажем, операция cube="возведение в куб". К первой операции обратной будет умножение на 0.5, то есть oper-1=*0.5, а ко второй операции обратной будет такая: cube-1="извлечение кубического корня". Минус единица вверху - это просто обозначение обратной операции. Еще пример: операция cycle, которая циклически переставляет буквы:
cycle(a b c) = c a b
Тогда обратная операция будет переставлять тоже циклически, но в другом направлении:
cycle-1(a b c) = b c a
Тогда
cycle-1(cycle(a b c)) = a b c
Еще можно заметить, что двукратное применение cycle к множеству из трех букв эквивалентно применению cycle-1. То есть cycle2=cycle-1.
Когда речь идет об абстрактых операциях, постарайся отвлечься от стереотипов. Полагайся только на логические выводы. Манипулирование с примерами очень помогает.
Перечитай, пожалуйста, предыдущий мой пост в этом свете. Если снова будет неясно, спрашивай. Материал действительно не из простых для начала.
Сообщение отредактировано: Lapp -
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой