zoukankan      html  css  js  c++  java
  • 群论学习笔记

    1.什么是群(群的四要素)

    1.1群的组成

    集合 (G ot=varnothing)​ 和​​ (G)​ 上的运算 (cdot)​ 构成的代数结构 ((G, cdot))​​

    人话:集合+运算=群,记作((集合,运算))​。

    1.2群的定义

    1.2.1封闭性

    (forall a,bin G,acdot bin G)

    人话:任意两个集合内的元素进行运算后,不会得到集合以外的元素。

    1.2.2结合律

    (forall a, b,cin G,(acdot b)cdot c=acdot(bcdot c))

    人话:类似于加法/乘法的结合律,只要相对位置不改变,运算的顺序对运算结果无影响。

    1.2.3单位元

    (exists ein G,forall ain G,ecdot a=acdot e=a)

    人话:类似于加法/乘法中的0/1,与集合内任何元素运算后结果都是那个元素。

    1.2.4逆元

    (forall ain G,exists bin G,acdot b=bcdot a =e),称 (b)(a) 的逆元,记作 (a^{-1})

    人话:相当于加法/乘法的相反数/倒数。

    1.3群的性质

    1.3.1定理:单位元唯一

    证明:

    假设有两个不同的单位元 (e_1,e_2)​,根据性质​1.2.3,有 (e_1=e_1e_2=e_2),与假设矛盾,故假设不成立。

    (Box)

    1.3.2定理:每个元素的逆元唯一

    证明:

    假设 (ain G) 有两个不同的逆元 (b,cin G),根据性质1.2.4,有 (acdot b=acdot c)

    所以 (a^{-1}(acdot b)=a^{-1}(acdot c))

    根据性质1.2.2,有 ((a^{-1}cdot a)cdot b=(a^{-1}cdot a)cdot bRightarrow ecdot b=b=ecdot c=c)

    假设不成立。左部同理。

    (Box)

    1.3.3定理:元素的阶

    对于任意的有限群 ((G,cdot))​, (forall ain G,exists k,a^k=e)​​,此时,称 (k)(a) 的阶,且有 (a^{-1}=a^{k-1})

    证明:

    根据性质1.1.1,(forall ain G,{a,a^2,a^3,...,a^{|G|},a^{|G|+1}}subseteq G)​​,​​

    因为 (G)​ 内没有相同的两个元素,因此 ({a,a^2,a^3,...,a^{|G|+1}}) 至少有两个相同的元素,假设 (a^x=a^y,x<y)​​​

    (a^{y-x}cdot a^x=a^{y-x}cdot a^y),即 (a^y=a^{y-x}cdot a^y=ecdot a^y),所以 (a^{y-x}=e,k=y-x)

    (Box)

    1.4子群

    1.4.1子群定义

    ((G,cdot))​​,(Hsubseteq G且H ot=varnothing)​,且 ((H,cdot))​ 也是群,则 ((H,cdot))​ 是 ((G,cdot))​ 的子群, 记为 (Hleq G)

    1.4.2陪集及其性质

    (Hleq G),且 (gin G),则

    1. (gH={gcdot t|hin H}), 称 (gH)(H)(G) 内的左陪集
    2. (Hg={hcdot s|hin H})​, 称 (Hg)​ 为 (H)​ 在 (G)​ 内的右陪集

    常见表述:

    1. (Hleq G), 则 (G/H) 表示 (G)(H) 的全体左陪集, 即 ({gH|gin G})
    2. (Hleq G), 则 ([G:H]) 表示 (G)(H) 的不同陪集的数量

    1.4.2.1性质1:(forall gin G,|H|=|Hg|)

    证明:

    假设存在 (gin G) , 满足 (|H| ot =|Hg|)

    所以, 根据陪集的定义, (exists h_1,h_2in H,h_1cdot g=h_2cdot g且h_1 ot =h_2)​​

    与集合的性质矛盾, 故假设不成立

    (Box)

    1.4.2.2性质2:(forall gin G,gin Hg)

    证明:

    根据定义1.2.3, (ein H)

    因为 (ecdot g=g)​​​​, ​所以 (g in Hg)​​​

    (Box)

    1.4.2.3性质3:(Hg=Hiff gin H)

    充分性证明:

    假设存在 (g)​​ , 使得 (Hg=H且g otin H)​​​, 则 (g otin Hg)​​​

    与性质1.4.2.2矛盾

    (Box)

    必要性证明:

    假设存在 (g)​, 使得 (gin H且Hg ot=H)​, 则 (exists hin H,hcdot g otin H)

    与性质1.2.1矛盾

    (Box)

    1.4.2.4性质4:(Ha=Hbiff acdot b^{-1}in H)

    充分性证明:

    易知 (ain Hb), 因此 (exists hin H,hcdot b=a)

    即, (h=acdot b^{-1})

    (Box)

    必要性证明:

    根据性质1.4.2.4, (Hab^{-1}=H)

    因为 (Hab^{-1}b={hcdot acdot b^{-1}cdot b|hin H}={hcdot a|hin H}=Ha)

    又因为 (Hab^{-1}b=Hb), 所以(Ha = Hb)

    (Box)

    1.4.2.5性质5:(Hacap Hb ot=varnothingiff Ha=Hb)

    充分性证明:

    假设 (xin Hacap Hb)​​​​, 则 (exists h_1,h_2in H,h_1cdot a=h_2cdot b=x)​​​, 因此 (ab^{-1}=h_1^{-1}h_2)​​

    根据性质1.2.1和性质​​1.2.4, (h_1^{-1}h_2in H)​, 所以(ab^{-1}in H)

    根据性质1.4.2.4, (Ha=Hb)

    (Box)

    必要性证明:略

    1.4.2.6性质6:(H)的全体右陪集的并等于G

    证明:

    根据性质1.4.2.2, (forall gin G, gin Hg)

    (Box)

    1.4.3Lagrange定理

    [|H|[G:H]=|G| ]

    证明:

    根据性质1.4.2.5和性质1.4.2.6, 得到 (|H|[G:H]=|G|)

    (Box)

    2.置换群

    2.1置换操作

    2.1.1置换操作的表示

    有限集合到自身的双射(即一一对应)称为置换。集合 (G={a_1,a_2, ...,a_n})​ 上的置换可以表示为

    [f=egin{pmatrix}a_1 &a_2&...&a_n \ p_1&p_2&...&p_n end{pmatrix} ]

    人话:将某个有序的有限集合重新排列,“重新排列”这个操作就叫集合的置换。例如,将 1 替换为 (a_1)​ ,(n)​ 替换为 (a_n)​。

    2.1.2循环表示

    假设有一个置换 (f=egin{pmatrix}a_1&a_2&a_3&a_4&a_5\a_3&a_1&a_2&a_5&a_4end{pmatrix})​​​,如果我们将每个元素看成一个节点,将 (i)​​ 向 (a_i)​​​ 连边,那么每个节点恰好有一条出边和一条入边,得到的图就是若干个不相交的简单环。因此,我们可以用更简单的循环表示法表示这样的置换。

    循环置换可以表示为

    [(a_1,a_2,...,a_n)=egin{pmatrix}a_1&a_2&...&a_{n-1}&a_n\a_2&a_3&...&a_n&a_1end{pmatrix} ]

    以开始提到的置换为例,该置换可以表示为 ((1,3,2)cdot (4,5)),置换的乘法后文会提到。

    2.1.3置换乘法

    对于两个置换 (f=egin{pmatrix}a_1&a_2&...&a_n\a_{p_1}&a_{p_2}&...&a_{p_n}end{pmatrix})​ 和 (g=egin{pmatrix}a_{p_1}&a_{p_2}&...&a_{p_n}\a_{q_1}&a_{q_2}&...&a_{q_n}end{pmatrix})​ ,(f)​ 和 (g)​ ​​的乘积记为 (fcdot g)​ ,其值为 (fcdot g =egin{pmatrix}a_1&a_2&...&a_n\a_{q_1}&a_{q_2}&...&a_{q_n}end{pmatrix})

    人话:将原序列先经过操作 (f)​​ ,再经过操作 (g)​​​​ 后的等价置换(一步到位)。注意,置换乘法不一定满足交换律。

    2.2置换群

    2.2.1置换群的验证

    上文已经定义了置换以及置换乘法, 本节验证是否满足群的定义。

    封闭性: 显然满足。

    结合律: 显然满足。

    单位元: 存在, (e=(1, 2, ...,n))

    逆元: 显然存在。

    因此, 本文的主角: 置换群登场。

    2.2.2群作用

    置换群是一个由置换操作组成的群,而非传统意义上的元素。

    因此,置换群必然是依托某个作用对象而存在的。而作用对象, 就是集合。

    对于一个集合 (M)​ 和群 ((G,cdot ))​, 若给定了一个二元函数 (phi(v,k))​,其中 (vin G)(kin M)​,且有:

    [phi(e,k)=k\phi(g,phi(s,k))=phi(gcdot s,k) ]

    则称群 ((G,cdot ))​ 作用于 集合 (M)

    2.3相关定理

    ((G,cdot ))​ 是一个置换群, 作用于集合 (X)

    方便起见,下文中 (phi (g,x))​ 记为 (g(x))

    2.3.1轨道-稳定子定理

    2.3.1.1概念

    • 不动点 :对于 (gin G)​​​​​​​​,若 (exists xin X,g(x)=x)​​​​​​​,则称 (x)​​​​​​​ 是 (g)​​​​​​​​ 下的不动点,(xin X^g)
    • (x)​​​​​​​​ 不动置换类(稳定子):对于 (gin G)​​​​​​​,若 (x)​​​​​​​ 是 (g)​​​​​​​ 下的不动点,则 (g)​​​​​​​ 属于 (x)​​​​​​​​ 不动置换类,记为 (gin G^x)​。
    • 等价类(轨道):(G(x)={g(x)|gin G}), 即 (x) 能够通过 (G) 内的置换操作所能够到达的所有元素。

    2.3.1.2定理:(|G^x||G(x)|=|G|)

    证明:

    首先证明 ((G^x,cdot))((G,cdot)) 的一个子群。

    封闭性:(forall g_1,g_2in G^x,(g_1cdot g_2)(x)=x),因此 ((g_1cdot g_2)(x)in G^x),封闭性得证。

    结合律:显然。

    单位元:因为 (e(x)=x),所以 (ein G^x)(G^x) 存在单位元。

    逆元:(forall gin G^x,(gcdot g^{-1})(x)=e(x)=x),又因为 (g(x)=x),所以 (g^{-1}(x)=x),所以 (g^{-1}in G^x),逆元存在。

    根据Lagrange定理,有 (|G^x||G:G^x|=|G|)

    只需证明:(|G:G^x|=|G(x)|)

    此时需要构建一个关于 (g(x))​ 与 (G^x)​ 的陪集的双射关系。

    显然,对于 (g(x)) 可以令其对应陪集 (gG^x)

    (g_1,g_2in G^x,g_1(x)=g_2(x))​,则 ((g_1cdot g_2^{-1})(x)=e(x)=x),所以(g_1cdot g_2^{-1}in G^x)

    根据性质1.4.2.4,(g_1cdot g_2^{-1} G^xiff g_1G^x=g_2G^x)​​,因此相同的 (g(x))​​​ 在相同的陪集中,相同的陪集中都是相同的 (g(x))

    因此 (|G:G^x|=|G(x)|) 得证。

    (Box)

    2.3.2Burnside引理

    (X/G={G(x)|xin X})​,则

    [|X/G|=frac{1}{|G|}sum_{gin G}X^g ]

    人话:(X) 在群 ((G,cdot)) 作用下的等价类总数等于每一个 (g) 作用下的不动点总数的平均数。

    证明:

    每个元素仅属于一个轨道,因此,有:(|X/G|=sumlimits_{xin X}frac{1}{|G(x)|})

    根据轨道-稳定子定理,有:(|X/G|=sumlimits_{xin X}frac{|G^x|}{|G|})

    因此,(|X/G|=frac{1}{|G|}sumlimits_{xin X}|G^x|=frac{1}{|G|}sumlimits_{gin G}|X^g|)

    (Box)

    2.3.3Pólya定理

    设有 (n) 个元素,每个元素有 (m) 种染色方法,((G,cdot))(n) 个元素的置换群,则染色总方案数为

    [frac{1}{|G|}sum_{gin G}T(g) ]

    其中,(T(g))​ 表示在置换 (g)​ 下,不变的染色方案数

    2.4实战演练

    2.4.1【模板】Pólya 定理)

    如果不考虑旋转相同,那么本题的答案十分显然,即 (m^n)

    考虑将旋转表示为一个置换群 ((G,cdot)) ,定义旋转为将所有顶点按照相同方向移动若干个位置,旋转1这个操作就可以表示为 (r=(a_1,a_2,cdots,a_n))​​​

    根据置换乘法的定义,旋转 (m)​​ 操 作可以表示为 (r^m=(a_1,a_2,cdots ,a_n)^m)​​

    容易得到,(G={r^0,r,...,r^{n-1}})(r^0)​​ 即为单位元)

    根据引理,不同染色的方案数为:

    [frac{1}{|G|}sum_{gin G}T(g) ]

    问题变为了如何求 (T(r))

    首先对于环上的每个节点标号,分别为 (0,1,...,n-1)

    容易发现,对于某个操作 (r^k)​​​​,如果要使旋转后染色相同,那么必须满足 ({ m col}(i)={ m col}((i+k)\%n))​​​

    不难想象,当循环节长度为 (gcd (k,n))​​ 时,总是满足旋转后的方案不变,因此,(T(r^k)=m^{gcd(k,n)})​,特别的,(T(r^0)=m^n)

    所以:

    [{ m ANS}=frac{1}{n}sum_{k=1}^{n}m^{gcd(k,n)} ]

    接下来就是莫比乌斯反演部分:

    [egin{eqnarray}{ m ANS}&=&frac{1}{n}sum_{d|n}m^dsum_{k=1}^{n}[gcd(k,n)=d] \ &=&frac{1}{n}sum_{d|n}m^dsum_{k=1}^{frac{n}{d}}left[gcd(k,frac{n}{d}) ight] \ &=&frac{1}{n}sum_{d|n}m^dvarphi(frac{n}{d}) end{eqnarray} ]

    2.4.2【HNOI2009】图的同构计数)

    如果不考虑同构,显然有 (2^{frac{n(n-1)}{2}}) 种不同的图

    分析一下同构定义:将图各个点重新标号后得到的图相同。因此,可以将同构看作是点置换的等价类。

    定义群 ((G,cdot)) ,其中 (G) 是全体置换操作组成的集合,(|G|=n!)

    由置换乘法可知,可以将一个置换拆分成若干个“环”,两个“环”之间不会发生点的置换。

    因此,对于每一个置换操作,可以这样计算其不动点(在本题中是“不动图”)个数,将边分两种情况讨论(每种情况都需要保证图中的边在这个置换下不动):

    1. 边的两个端点在同一个“环”上(假设参与这个置换循环的点数为 (n)):

      想象一个圆周上有 (n)​ 个点,全部向同一个方向旋转一个位置,得到的图不变即为“不动图”。不难发现,只要所有点连出的所有边的长度一一对应,得到的即为“不动图”。一个点最多连出 (leftlfloorfrac{n}{2} ight floor) 条不同的边,故共有 (2^{leftlfloorfrac{n}{2} ight floor})​​​​​ 种“不动图”。

    2. 边的两个端点不在同一个“环”上(假设两个环的点数分别为 (a)(b)):

      考虑一条边做 ({ m lcm}(a,b)) 次操作就能回到原本的位置,因此等价类的大小应当是 ({ m lcm}(a,b))。每条边都在同样大小的等价类中,因此不同等价类的个数为 (frac{ab}{{ m lcm}(a,b)}=gcd (a,b)),故共有 (2^{gcd (a,b)}) 种“不动图”。

    综上,对于一种置换,假设其拆分后的环长度分别为 (b_1leq b_2leq cdots leq b_m)​,那么不动点的个数应当是:

    [2^{sumlimits_{i=1}^mleftlfloorfrac{b_i}{2} ight floor+sumlimits_{i<j} gcd(b_i,b_j)} ]

    根据Burnside引理,有:

    [{ m ANS}=frac{1}{n!}sum 2^{sumlimits_{i=1}^mleftlfloorfrac{b_i}{2} ight floor+sumlimits_{i<j} gcd(b_i,b_j)} ]

    (n!) 枚举置换显然不现实。根据式子不难发先,如果两个不同的置换有相同的 (b) 序列,那么这两个置换的不动点个数也是相同的。

    考虑每种 (b) 序列对应多少种不同的置换:

    1. 首先将长度为 (n) 分为 (m) 段,每段代表一个循环,因此环内第一个数字无论放在哪个位置都是相同的,所以方案数为 (frac{n!}{prodlimits_{i=1}^m b_i})
    2. 其次考虑不同环之间的关系,发现两个大小相同的环的相对位置对与方案数没有影响,因此方案数为 (frac{n!}{prodlimits_{i=1}^m b_iprodlimits_{l} c_l!})​​​​​​,(c_l)​​​​​ 表示长度等于 (l)​​​​​​ 的环​的个数。

    可以通过 dfs 进行整数拆分得出 (b) 序列。总答案为:

    [{ m ANS}=sum frac{2^{sumlimits_{i=1}^mleftlfloorfrac{b_i}{2} ight floor+sumlimits_{i<j} gcd(b_i,b_j)}}{prodlimits_{i=1}^m b_iprodlimits_{l} c_l!} ]

    3.参考文献

    置换群-oi-wiki)

    群论小记-command_block的博客)

    题解 P4980 【【模板】Polya定理】-Soulist 的博客)

  • 相关阅读:
    DevOps Workshop 研发运维一体化(北京第二场) 2016.04.27
    DevOps Workshop 研发运维一体化(成都站) 2016.05.08
    TFS 2015 生成不输出任何结果
    挂起的更改中的“解析”是什么意思?原来是微软错误的翻译
    微软研发流程(ALM)管理培训会议(比亚迪汽车)
    TFS实战培训
    【实战TFS】【QQ群】了解别人是如何使用TFS的
    DevOps Workshop 研发运维一体化(广州站)
    制作Visual Studio 2017 (VS 2017) 离线安装包
    在每页(分页)报表中重复显示标题
  • 原文地址:https://www.cnblogs.com/GDOI2018/p/15085441.html
Copyright © 2011-2022 走看看