Вы не правы. Количество транспозиций не всегда будет 3
, но будет варьироваться.
Ваш первый пример (1,2,3,4)
не нуждается в транспозициях (это исходный порядок), так что это четная перестановка. Ваш второй пример (1,2,4,3)
может быть выполнен с одной транспозицией (поменяйте местами 3
и 4
), так что это будет странно. Ваш третий пример (1,3,2,4)
также может быть выполнен с одной транспозицией (поменяйте местами 2
и 3
), так что это странно. И так далее.
Примером, который вы не привели, является (1,3,4,2)
, который может быть выполнен с двумя транспозициями (поменяйте местами 2
и 3
, затем поменяйте местами 2
и 4
), так что это четное транспозиции. Другим последним примером является (2,3,4,1)
, который можно выполнить с помощью трех транспозиций (поменяйте местами 1
и 2
, затем поменяйте местами 1
и 3
, затем поменяйте местами 1
и 4
), так что это странно.
Никакая перестановка четырех элементов не потребует более трех транспозиций, но многие могут быть выполнены за меньшее количество. Обратите внимание, что когда я говорю «может быть сделано с одной транспозицией», перестановка может быть сделана с другим числом транспозиций, например с тремя или пятью. Однако математическая теорема утверждает, что если перестановка может быть выполнена с n транспозициями, а также с k транспозициями, то n и k имеют одинаковую четность - они оба четные или оба нечетные. Таким образом, «четная перестановка» может быть выполнена с четным числом транспозиций, но мы не знаем и не заботимся о том, что такое точное число. «Нечетная перестановка» может быть сделана с нечетным числом транспозиций - одна или три или пять или ....
Спросите, нужна ли вам помощь в написании кода, определяющего четность перестановки.