数学杂谈 #7

置换

置换

首先说成大白话的形式:一个调换元素顺序的规则就叫置换。

现在用一个比较严谨的说法:

\(f:A\rightarrow A\)双射的,那么我们称 \(f\)\(A\) 上的一个置换。一般而言,我们都是讨论 \(A\)有限集的情况。

一般而言,如果 \(A=\{a_1,a_2,\dots,a_n\}\),我们会用一个比较直观的方式表示一个置换:

\[f=\left(\begin{matrix}a_1&a_2&a_3&\dots&a_n\\b_1&b_2&b_3&\dots&b_n\end{matrix}\right) \]

这表示 \(f\) 的映射规则为 \(a_1\rightarrow b_1,a_2\rightarrow b_2,\dots,a_n\rightarrow b_n\)

一些比较琐碎的内容:

  • 如果 \(f\)\(A\) 上的一个置换,则称 \(|A|=n\)\(f\) 的大小 or 长度 or 阶数;

  • 由于 \(f\) 的双射性质,故存在 \(p\)\(\{1,2,3,\dots,n\}\) 的一个排列,使得对于任意的指标 \(k\)\(a_{p_k}=b_k\)

    于是不难得出长度为 \(n\) 的置换有 \(n!\) 个;

  • 对于置换 \(f,g\),称它们两个不相交,当且仅当若 \(f:A_1\rightarrow A_1,g:A_2\rightarrow A_2\),则 \(A_1\cup A_2=\varnothing\)

置换复合/乘法

我们自然很好奇,对于一个 \(A\),连续施加置换会发生肾摸事。

考虑现在有 \(A\) 上的两个置换 \(f,g\),如果我们先对于 \(A\) 施加 \(f\),再施加 \(g\),会变成什么样?

显然可以对于每个元素单独考虑:对于元素 \(a_k\in A\),原先为 \(a_k\),现在 \(g(f(a_k))\)

不难注意到,最终 \(A\) 的变化仍然可以使用一个置换来表示。这意味着我们可以找出一个新的置换 \(h\) 表示这种变化规则:

\[\forall a_k\in A,h(a_k)=g(f(a_k)) \]

这自然而然地引申出了置换的复合运算:

\[h=f\circ g\Leftrightarrow \forall a_k\in A,h(a_k)=(f\circ g)(a_k)=g(f(a_k)) \]

当然,需要注意运算顺序。在下文中,如果不会导致歧义,我们也会勇敢地使用 \(fg\) 来直接表示 \(f\circ g\)

轮换

我们来看一下一类特殊的置换:

\[\sigma=\left(\begin{matrix}a_1&a_2&a_3&\dots&a_n\\a_2&a_3&a_4&\dots &a_1\end{matrix}\right) \]

也就是每个元素都向前挪一下。

这就好比将所有元素从 1 到 \(n\) 顺时针排布在一个环上,再将环逆时针旋转一下,得到的就是施加轮换的结果。

所以它的名字就叫 cycle。

另一种表示法,用上了轮换的特殊性:

\[\sigma=\left(\begin{matrix}a_1&a_2&a_3&\dots&a_n\\a_2&a_3&a_4&\dots &a_1\end{matrix}\right)=(a_1,a_2,a_3,\dots,a_n) \]

轮换分解

这个轮换有什么作用?比如说,轮换的结构较置换而言简单得多。

而更重要的是,任意一个置换都可以分解成若干个不相交轮换的组合

也即,对于长度为 \(n\) 的置换 \(f\),有:

\[f=\sigma_1\sigma_2\dots\sigma_m\\ \sigma_k=(a_{k1},a_{k2},\dots,a_{k,l_k})\\ \]

且对于 \(i\not=j\),都有 \(\sigma_i,\sigma_j\) 不相交。

这里轮换的组合意味着若 \(\pi=\sigma\rho,\sigma:A_1\rightarrow A_1,\rho:A_2\rightarrow A_2\),则 \(\pi(k)=\begin{cases}\sigma(k)&k\in A_1\\\rho(k)&k\in A_2\end{cases}\)

这个重要性质的证明可以对长度使用归纳法,在此不赘述;

此外,也可以说明在忽略轮换之间的顺序的情况下,这种分解是唯一的;比较显然也不赘述;

一般情况下,我们用 \(c(f)\) 表示置换 \(f\) 分解后的轮换数量。

需要注意的是,由于我们常常会在轮换分解中略去一阶轮换的书写,所以使用轮换表示置换的时候,指出阶数是很有必要的


轮换分解的好处都有啥?谁说对了就给他

可以发现,轮换分解有两个优点:

  • 结构清晰,可以让人容易看出置换的具体作用;
  • 独立,轮换之间互不干扰,又有相似结构,方便研究;

轮换指标

有时候我们可以忽略置换的具体结构,只关心置换的轮换的组成结构,那么一个置换可以导出它的轮换指标

为此,我们需要用 \(c_j(f)\) 表示置换 \(f\) 拆分后,具有的长度为 \(f\) 的轮换数量,那么 \(f\) 可以被表示为:

\[t_1^{c_1(f)}t_2^{c_2(f)}t_3^{c_3(f)}\dots t_n^{c_n(f)} \]

具体的我们会放到后面来说。

群与置换群

对于一个集合 \(G\) 和一个在 \(G\) 上的二元运算 \(\circ\),如果 \(G\)\(\circ\) 满足如下四条性质:

  • 封闭性:\(\forall a,b\in G,a\circ b\in G\)
  • 结合律:\(\forall a,b,c\in G,(a\circ b)\circ c=a\circ (b\circ c)\)
  • 幺元存在:\(\exists e\in G,\forall a\in G,a\circ e=e\circ a=a\),此时这个 \(e\) 被称为幺元。一般而言,也用 \(e\) 来表示一个群里的幺元;
  • 逆元存在:\(\forall a\in G,\exists b\in G,a\circ b=b\circ a=e\),此时 \(b\) 被称为 \(a\) 的逆元,记作 \(a^{-1}=b\)

那么,二元组 \((G,\circ)\) 构成一个群。一定要注意的是,一个群的集合和它的运算是有机结合的,群论研究它们两个而非其中任何单独的一个。


为什么我们需要研究群呢?

因为实际问题中,许多系统的性质和系统里具体装的什么、甚至具体是什么并不相干,它们是独立于系统之外的。

如果我们发现一个群可以被应用到一个实际的系统上,那么许多系统的性质便以不证自明了。

举个例子,有一个群,是这样的:

对于 \(n\in \mathbb{N_+},G_n=\{x\in \mathbb{N}|x<n\}\),可以验证 \((G_n,+)\) 构成一个群。

那么在实际生活中,我们假装你在原地转圈圈,转一次只会恰好转 \(\frac{2\pi}{n}\)

不错,这个转圈圈的问题就可以直接用 \((G_n,\circ)\) 来描述,自然也就可以迅速地推导出如下结论:

  1. 封闭性:你不会转着转着转出了 \(2\pi(\phi-1)\) 这样奇奇怪怪的朝向,事实上我们已经掌握了你所可能的全部朝向;
  2. 结合律:先转 \(a+b\) 下,最后转 \(c\) 下,和先转 \(a\) 下,再转 \(b+c\) 下效果相同;
  3. 幺元存在:如果你转了 0 下,那么你的朝向不发生改变;
  4. 逆元存在:如果你转了 \(a\) 下(\(0\le a<n,a\in \N\)),那么你再转 \(n-a\) 下一定会回到你原来的朝向;

是吧,依靠一个已经研究透彻的群,我们已经得到了如此强的结论,近乎可以预测你的任意旋转的结果

虽然这个例子看起来非常嗯哼,但是也一定程度上反映了群论的强大,更何况我们现在仅仅是使用了群的最基本的性质。


小心一点,以下笔者似乎会使用 \(G\) 来同时表示一个群和一个群中元素的集合

以下是一些重要但琐碎的概念:

  • 子群:对于群 \((G,\circ)\),和 \(H\subseteq G,H\not=\varnothing\),若 \((H,\circ)\) 也构成一个群,那么称 \((H,\circ)\)\((G,\circ)\) 的一个子群,记作 \(H\le G\)
  • 无限、有限与阶:如果群 \((G,\circ)\) 中,\(G\) 为无限集,此时称 \((G,\circ)\)无限群;反之称之为有限群,且称 \(|G|\) 为群的阶数

置换群

根据上面对于置换的认识,我们可以发现,长度相同的置换也构成一个群。

考虑所有定义在集合 \(A=\{a_1,a_2,\dots,a_n\}\) 上的置换,设 \(P_n\) 为长度为 \(n\) 的置换构成的集合,设 \(\circ\) 为置换的复合,不难验证:

  • 封闭性:\(\forall f,g\in P_n,f\circ g\in P_n\)

  • 结合律:\(\forall f,g,h\in P_n,(f\circ g)\circ h=f\circ (g\circ h)\)

    说明:\(\forall a_k\in A,(f\circ g)\circ h=h(g(f(a_k)))=f\circ(h\circ g)\)

  • 幺元存在:在 \(P_n\) 中,幺元为以下恒等置换

    \[e_n=\left(\begin{matrix}a_1&a_2&a_3&\dots&a_n\\a_1&a_2&a_3&\dots&a_n\end{matrix}\right) \]

    说明:容易验证,\(\forall f\in P_n,f\circ e_n=e_n\circ f=f\)

    \(n\) 确定的时候,我们也可以省略 \(e_n\) 而写作 \(e\)

  • 逆元存在:对于 \(f\in P_n\),若有:

    \[f=\left(\begin{matrix}a_1&a_2&a_3&\dots&a_n\\b_1&b_2&b_3&\dots&b_n\end{matrix}\right) \]

    那么可以得到:

    \[f^{-1}=\left(\begin{matrix}b_1&b_2&b_3&\dots&b_n\\a_1&a_2&a_3&\dots&a_n\end{matrix}\right) \]

    容易验证 \(f\circ f^{-1}=f^{-1}\circ f=e\)

此时构成的群 \((P_n,\circ)\),也称为 \(n\) 阶对称群,用 \(S_n\) 表示。

对称群可以说是相当“自然”的一类群,因为它们很容易就与现实问题挂钩。

例如,正 \(n\) 边形的旋转/对称操作构成的置换群就是 \(S_n\) 的一个子群。

对称群下的轮换指标

我们回头再看一下轮换指标这个东西。

首先需要注意的是,其中的 \(t\) 是形式变元,我们并不在乎它是什么,只是这个乘法的“形式”而已。

梦回生成函数

那么,考虑 \((G,\circ)\)\(n\) 元集合 \(A\) 上的一个置换群,则可以定义该群的轮换指标:

\[P_G(t_1,t_2,\dots,t_n)=\frac{1}{|G|}\sum_{g\in G}\prod_{k=1}^nt_k^{c_{k}(g)} \]

特别的,对于 \(n\) 阶对称群,我们可以计算其中任意一项 \(\prod_{k=1}^nt_k^{c_k}\) 的系数,其中满足 \(\sum_k c_k=n\)

\[\left[\prod_{k=1}^nt_k^{c_k}\right]P_{S_n}(t_1,t_2,\dots,t_n)=n!\prod_{k=1}^n\frac{1}{c_k!}\prod_{j=1}^{c_k}\frac{(k-1)!}{k!}=\frac{n!}{\prod_{k=1}^nc_k!\cdot k^{c_k}} \]

理解:先选出每个轮换的元素,再考虑轮换内部的环排列方案数,最后还要去除轮换之间的顺序。

posted @ 2021-06-30 21:27  crashed  阅读(186)  评论(0编辑  收藏  举报