• 对换对排列奇偶性的影响


    前置知识:


    定义1(对换) 在排列中,将任意两个元素对调,其余的元素不动,这种作出新排列的手续叫做 对换。将相邻两个元素对换叫做 相邻对换

    下面讨论对换对排列奇偶性的影响。

    首先考虑相对简单的相邻对换。经过相邻对换,对换元素前后的逆序数不会改变;同时,因为排列中的元素各不相同,所以无论对换元素谁大谁小,总会令排列的逆序数 ± 1 \pm1 ±1,使奇偶性改变。

    接着考虑一般对换。不妨设对换元素之间相隔 m m m 个其他元素,此时将左侧元素移动到右侧元素的右边需要 m + 1 m+1 m+1 次相邻对换,而将右侧元素移动到原来左侧元素的位置需要 m m m 次相邻对换。因为每次相邻对换均会改变排列奇偶性,因此一般对换经过 2 m + 1 2m+1 2m+1 次相邻对换后也会改变排列奇偶性。

    于是得到定理及证明如下:

    定理1 一个排列中的任意两个元素对换,排列改变奇偶性。

    证明:仍不妨设元素为从 1 1 1 开始自然数(从小到大为标准次序)。先证明对换的情形。

    设排列为 a 1 ⋯ a n a b b 1 ⋯ b m a_1 \cdots a_n a b b_1 \cdots b_m a1anabb1bm,对换 a a a b b b,变为 a 1 ⋯ a n b a b 1 ⋯ b m a_1 \cdots a_n b a b_1 \cdots b_m a1anbab1bm。显然, a 1 , ⋯   , a n a_1,\cdots,a_n a1,,an b 1 , ⋯   , b m b_1,\cdots,b_m b1,,bm 这些元素的逆序数经过对换并不会改变,而 a , b a,b a,b 两元素的逆序数改变为:当 a < b a < b a<b 时,经过对换后 a a a 的逆序数增加 1 1 1 b b b 不变;当 a > b a > b a>b 时,经过对换后 a a a 的逆序数不变而 b b b 的逆序数减少 1 1 1。所以排列 a 1 ⋯ a n a b b 1 ⋯ b m a_1 \cdots a_n a b b_1 \cdots b_m a1anabb1bm 与排列 a 1 ⋯ a n b a b 1 ⋯ b m a_1 \cdots a_n b a b_1 \cdots b_m a1anbab1bm 的奇偶性不同。

    再证一般对换的情形。

    设排列为 a 1 ⋯ a n a c 1 ⋯ c l b b 1 ⋯ b m a_1 \cdots a_n a c_1 \cdots c_l b b_1 \cdots b_m a1anac1clbb1bm,把它作 m m m 次相邻对换,变成 a 1 ⋯ a n a b c 1 ⋯ c l b 1 ⋯ b m a_1 \cdots a_n a b c_1 \cdots c_l b_1 \cdots b_m a1anabc1clb1bm,再作 m + 1 m+1 m+1 次相邻对换,变成 a 1 ⋯ a n b c 1 ⋯ c l a b 1 ⋯ b m a_1 \cdots a_n b c_1 \cdots c_l a b_1 \cdots b_m a1anbc1clab1bm。总之,经过 2 m + 1 2m+1 2m+1 次相邻对换,排列 a 1 ⋯ a n a c 1 ⋯ c l b b 1 ⋯ b m a_1 \cdots a_n a c_1 \cdots c_l b b_1 \cdots b_m a1anac1clbb1bm 变成排列 a 1 ⋯ a n a b c 1 ⋯ c l b 1 ⋯ b m a_1 \cdots a_n a b c_1 \cdots c_l b_1 \cdots b_m a1anabc1clb1bm,所以这两个排列的奇偶性相反。

    进而得到推论及证明如下:

    推论 奇排列对换称标准排列的对换次数为奇数,偶排列对换成标准排列的对换次数为偶数。

    证明:由定理 1 知对换的次数就是排列奇偶性的变化次数,而标准排列是偶排列(逆序数为 0 0 0),因此知推论成立。

  • 相关阅读:
    Flutter 小白之旅---基础知识篇
    SpringBoot+Freemark根据html模板动态导出PDF
    京东云联合Forrester咨询发布混合云报告 云原生成为驱动产业发展新引擎
    Tomcat及jdk安装下载及环境配置(超超超详解)
    阿里巴巴K8S集成seata
    遍历线索化二叉树(思路分析) [算法与数据结构][Java]
    史上最短苹果发布会;三星、LG、高通联手进军 XR 市场丨 RTE 开发者日报 Vol.74
    runc hang 导致 Kubernetes 节点 NotReady
    五、strongSwan
    编译原理—中间代码生成、布尔表达式翻译、短路计算、控制流语句翻译、条件语句、循环语句
  • 原文地址:https://blog.csdn.net/Changxing_J/article/details/126810817