《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》

Posted 繁凡さん

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》相关的知识,希望对你有一定的参考价值。

整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


小学生都能看懂系列,小学生:我太难了

  群论、置换、Bunrnside引理、Pόlya定理等概念是群论的内容,也是《组合数学》第十四章Pόlya计数的内容(一般认为组合数学属于离散数学hhh),更加详细的概念以及具体的证明参见《离散数学》或者《组合数学》。这里我参考的是机械工业出版社翻译出版的原书第5版《组合数学》。


  由于时间,篇幅等限制,我这里只会简单列举一些重要性质定理概念以及竞赛中常考的一些用法,精选例题 ,实际上群论等相关定理在算法竞赛中常常用来解决一些计数问题,并且一般都是直接拿去使用的,常用的有 Bunrnside 引理、 polya 定理等等
  实际上群论里绝大多数概念、证明什么的一点都不了解也对于我们做题没有任何影响,这里涉及的很多概念、证明都不用强求,简单理解就好 ~ 都不会太难,小学二年级都能看懂,嘿嘿嘿。

目录

0x00 群的定义

  给定一个集合 G = a , b , c , . . . G = \\a,b,c,...\\ G=a,b,c,... 和集合上的二元运算 “ ∗ * ”,如果满足以下条件:

(1)封闭性。对于任意的 a , b ∈ G , a ∗ b ∈ G a,b\\in G,a*b \\in G a,bG,abG 成立。

(2)结合律。对于任意 a , b , c ∈ G , a ∗ ( b ∗ c ) = ( a ∗ b ) ∗ c a,b,c \\in G,a*(b*c) = (a*b)*c a,b,cG,a(bc)=(ab)c 成立。

(3)存在单位元。G 中存在一个元素 e e e,使得对于 G 中任意元素 a a a ,都有 a ∗ e = e ∗ a = a a*e = e*a = a ae=ea=a,元素 e e e 为单位元素。

(4)存在逆元。对于 G 中任意元素 a a a ,恒有一个 b ∈ G b\\in G bG ,使得 a ∗ b = b ∗ a = e a*b= b*a = e ab=ba=e,则元素 b b b 为元素 a a a 的逆元,记作 a − 1 a^-1 a1.

  则称集合 G 是运算 “ ∗ * ” 下的一个群,记为 ( G , ∗ ) (G,*) (G) 若 G 是一个有限集,则称 ( G , ∗ ) (G,*) (G) 为有限群,其中有限群元素个数成为有限群的阶。记作 ∣ G ∣ |G| G ;若 G 是无限集,则称 ( G , ∗ ) (G,*) (G) 是无限群。

如果群G中任意两个元素a,b满足交换律,则该群为Abel群。

子群

  设 G 在 “ ∗ * ” 下是一个群,若 H 是 G 的非空子集且 H 在 “ ∗ * ” 运算下也是一个群,则称 ( H , ∗ ) (H,*) (H) ( G , ∗ ) (G,*) (G) 的子群。

0x10 置换

0x11 置换

  置换,就是一个 1 1 1~ n n n 的排列,是一个 1 1 1~ n n n 排列对 1 1 1 ~ n n n 的映射。其实置换就是给我们一个 n n n 个数的排列 1 , 2 , ⋯ n 1,2,\\cdots n 1,2,n ,我们通过置换得到 1 1 1 ~ n n n 的映射 p 1 , p 2 , p 3 ⋯ p n p_1,p_2,p_3\\cdots p_n p1,p2,p3pn

它们一一对应: ( 1   2   3   . . . n p 1   p 2   p 3 . . . p n ) \\binom1\\ 2\\ 3\\ ...np_1\\ p_2 \\ p_3 ...p_n (p1 p2 p3...pn1 2 3 ...n)

表示元素 1 1 1 1 1 1 n n n 的某个数 p 1 p_1 p1取代, 2 2 2 1 1 1 n n n的某个除 p 1 p_1 p1 以外的数 p 2 p_2 p2 取代 ⋯ n \\cdots n n 1 1 1 n n n 中除 p 1 , p 2 , p 3 , ⋯   , p n − 1 p_1,p_2,p_3,\\cdots,p_n-1 p1,p2,p3,,pn1 的数 p n p_n pn取代。

也可以将置换看作是一个函数 f ( x ) f(x) f(x) ,其中 f ( 1 ) = p 1 f(1) =p_1 f(1)=p1 f ( 2 ) = p 2 f(2)=p_2 f(2)=p2 ⋯ \\cdots f ( n ) = p n f(n)=p_n f(n)=pn

其中 p 1 , p 2 , ⋯   , p n p_1,p_2,\\cdots,p_n p1,p2,,pn 仍然是 1 1 1 ~ n n n 的一个排列,所以很明显不同的置换一共有 n ! n! n! 种 ,因为所有排列有一共 n ! n! n! 种选择方式。

0x12 置换的乘法

我们发现置换实际上就表示为元素位置的变化

例如给定一个四元置换:

序列 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 经过该四元置换以后,变成了 3 , 2 , 4 , 1 3,2,4,1 3,2,4,1

即: ( 1   2   3   4   3   2   4   1 ) \\binom1\\ 2\\ 3\\ 4\\ 3\\ 2 \\ 4 \\ 1 (3 2 4 11 2 3 4 )

若我们对 3 , 2 , 4 , 1 3,2,4,1 3,2,4,1 再进行一次上述置换(同样的位置映射)就得到了 4 , 2 , 1 , 3 4,2,1,3 4,2,1,3

置换实际上就表示元素的变化,因此就有置换的乘法

P 1 = ( 1     2    3     4   a 1   a 2   a 3   a 4 )    P 2 = ( a 1   a 2   a 3   a 4 b 1   b 2   b 3   b 4

以上是关于《小学生都能看懂的群论从入门到升天教程》 《群论全家桶》的主要内容,如果未能解决你的问题,请参考以下文章

生成函数(母函数)

小学生都能看懂的残差网络

小学生都能看懂的残差网络

人人都能看懂的 Python 装饰器入门教程

gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程

小学生都能看懂的FFT!!!