跳至主要内容
数学
群论 · 从定义开始

群是什么?先从我们熟悉的计算说起

为什么研究群

先看一个很普通的问题:一个整数加上 3,结果是 7,原来的整数是多少?我们把不知道的数记作 xx,于是问题写成 x+3=7x+3=7。在两边都加上 −3-3,右边得到 4,左边的 +3+3 和 −3-3 抵消,所以 x=4x=4。这里的 xx 只是暂时不知道的那个数,没有别的含义。

我们为什么能这样做?一是几个整数相加,结果仍然是整数;二是连续相加时可以改变括号,而不改变数字的先后;三是加上 0 不改变原来的数;四是每个整数都有一个相反数,可以与它相加得到 0。平时解题时,这些规则藏在几行计算里面。现在我们把它们拿出来,一条一条看。

如果我们处理的对象不是整数,而是一组可以撤销的操作,会不会也有相似的规则?例如,先后执行两条操作可以合成一条操作;什么都不做是一条保持原状的操作;每条操作可能有对应的撤销操作。这个问题值得问,因为如果两种看起来不同的东西遵循同样的规则,有些推理就可以共用,不必为每一种对象重新发明一套方法。

群论研究的就是满足一组指定规则的“对象集合和组合运算”。它让我们明确:什么时候可以合并计算、怎样撤销、怎样求出缺少的一项,哪些顺序可以交换,哪些不能。它不是为了给加减法换一个名字;它把推理真正依赖的条件说清楚,让同一段推理能用于数字、排列和几何变换。并不是任何集合、任何操作都符合这些条件。

我们会用整数加法逐条核对定义,看看这些规则究竟允许我们做什么。利用这些规则,我们就能推出求未知元素的方法,也能研究带标记的正方形的转动与反射。这一页会把问题解决完整,不需要等到另一节抽象代数课。你只需要会整数加减和读等式;新记号都会在使用前解释。

集合和运算

要谈一种计算,先要说允许使用哪些对象。把这些对象作为一个整体来讨论,这个整体叫作集合。集合里的每个对象叫作元素。例如,整数集合包含 0、正整数和负整数:Z={…,−2,−1,0,1,2,…}\mathbb{Z}=\{\ldots,-2,-1,0,1,2,\ldots\}。花括号表示把其中的对象放在一个集合里;两端的省略号表示向两边一直延续。字母 Z\mathbb{Z} 是整数集合的常用记号。

但只说“整数”还没有说清楚要怎样计算。对同样的 2 和 3,加法得到 5,乘法得到 6。因此还要选定一种运算。这里的二元运算,是一条把两个输入配成一个确定输出的规则:“二元”说的是两个输入,不是二进制。我们还要分清第一个输入和第二个输入,不能预先假定交换它们后结果相同。

以后用 GG 表示选好的集合,用 a,b,ca,b,c 表示集合里的任意元素,用 a∈Ga\in G 表示“aa 是 GG 的元素”。我们用 a⋆ba\star b 写“按照选定的规则,把第一个输入 aa 与第二个输入 bb 组合”。星号 ⋆\star 在这里是运算的占位记号,不指定普通乘法;在整数加法的例子里,它就是加号。

第一个输入a第二个输入b选定的规则⋆一个确定结果a ⋆ b

例如加法:第一个输入 2,第二个输入 3,规则是 +,结果是 5。运算指规则 +;5 是这对输入按规则得到的结果。

群的标准定义

标准定义如下:非空集合 GG 配上一个在 GG 上的二元运算 ⋆\star,如果满足下面的条件,就称为一个群,记作 (G,⋆)(G,\star)。“非空”是说至少有一个元素。成对的记法提醒我们:群由集合和运算共同决定;同一个集合换一种运算,可能就不是群了。

1. 封闭性:结果仍在选定的集合里

a,b∈G⟹a⋆b∈Ga,b\in G\quad\Longrightarrow\quad a\star b\in G

从 GG 里任取两个元素,都能按这条规则得到唯一确定的结果,而且结果仍在 GG 里。这样得到的结果才能继续参加同一种运算。严格说,“GG 上的二元运算”已经包含这项要求;这里单列出来,是为了检查时不漏掉。

2. 结合律:可以改变括号

(a⋆b)⋆c=a⋆(b⋆c)(a\star b)\star c=a\star(b\star c)

这必须对 GG 里任意三个元素成立。左边的括号把 aa 和 bb 分成一组,这一组的结果与 cc 组合;右边的括号把 bb 和 cc 分成一组,aa 与这一组的结果组合。两边的元素顺序都还是 a,b,ca,b,c,改变的只是括号的位置。它没有允许我们把 aa 和 bb 交换。

3. 单位元:有一个共同的“不改变”元素

e⋆a=a⋆e=ae\star a=a\star e=a

集合里要存在一个元素,记作 ee,使它与任意元素 aa 组合都不改变 aa。放在左边、放在右边都要成立,而且同一个 ee 要对所有 aa 有效。在加法中这个角色由 0 担任;不要因为它叫“单位元”就认为一定是数字 1。

4. 逆元:每个元素都能被抵消到单位元

a−1⋆a=a⋆a−1=ea^{-1}\star a=a\star a^{-1}=e

对每一个 aa,都要能在同一个集合 GG 里找到一个元素,记作 a−1a^{-1},使两种顺序的组合都得到 ee。不同的 aa 通常对应不同的逆元。上标 −1-1 在这里表示“在当前运算下的逆元”,不自动表示分数 1/a1/a;加法下 aa 的逆元是 −a-a。

群的定义不要求 a⋆b=b⋆aa\star b=b\star a。这一条叫作交换律:它改变两个元素的顺序,与刚才只改变括号的结合律不同。如果一个群还满足交换律,就叫交换群,也叫阿贝尔群。整数加法会满足;后面的正方形反射与旋转会让我们看到不满足的情况。

这些是我们用来定义“群”的条件,不是从一张图推出来的自然定律。要判断一个具体对象是不是群,就要对照条件证明它满足。一个例子只能帮助看懂条件;声称“对任意元素都成立”时,需要覆盖任意元素的理由。

逐条检查整数加法

现在选 G=ZG=\mathbb{Z},并让 a⋆b=a+ba\star b=a+b。也就是:集合包含所有整数,选定的运算是普通加法。请同时记住这两部分;我们要证明的是 (Z,+)(\mathbb{Z},+) 是群。

先把计算放在数轴上看:0 是起点,向右每格增加 1,向左每格减少 1。加正整数就是向右走相应的格数,加负整数就是向左走;加 0 留在原处。下面两条轨道使用同一条数轴的刻度:第一条保留第一段,第二条保留接着走的第二段。竖直方向只为了把步骤分开,不是额外的运动。

把整数加法一段一段画出来-101234

从 0 开始。选择两个整数,再逐段显示。轨道上的每个圆点对应一个整数位置。

00

刻度范围随选择改变,以便完整显示;相邻两格始终相差 1。滑块只选取 −6 到 6 的例子,群本身包含所有整数,没有上下限。

封闭性:任意两个整数分别表示整数个向右或向左的单位步。把两段合在一起后,净步数仍是整数,不会凭空出现半格。所以任意整数 a,ba,b 的和 a+ba+b 仍在 Z\mathbb{Z} 中。例如 3+(−2)=13+(-2)=1,结果 1 仍是整数。图上显示的有限一段不是整个集合;Z\mathbb{Z} 没有左右端点。

结合律:整数加法允许把同一串有方向的单位步分成不同的组,而不改变这些步合计的净位移。所以 (a+b)+c=a+(b+c)(a+b)+c=a+(b+c)。这里用的是整数加法本身的基本性质,而不是声称只凭几个滑块值就证明了它。具体看 (3+(−2))+4=1+4=5(3+(-2))+4=1+4=5;另一种分组是 3+((−2)+4)=3+2=53+((-2)+4)=3+2=5。数字的顺序始终是 3、−2-2、4。

单位元:0 表示不增加也不减少。无论整数 aa 是多少,a+0=0+a=aa+0=0+a=a,因此单位元是 0。逆元:对于每个整数 aa,相反数 −a-a 也是整数;相同数量、相反方向的步数抵消,所以 a+(−a)=(−a)+a=0a+(-a)=(-a)+a=0。包括 a=0a=0:0 的逆元仍然是 0。四项都满足,因此 (Z,+)(\mathbb{Z},+) 是群。

少一条为什么不行

只保留非负整数,加法还构成群吗?

非负整数是 {0,1,2,3,…}\{0,1,2,3,\ldots\}。相加不会离开集合,结合律仍成立,0 也还在。但 1 的逆元需要满足 1+b=01+b=0,所以必须是 b=−1b=-1;−1-1 不在这个集合里。因此缺少逆元条件,不是群。一次反例就足以推翻“每个元素都有逆元”。

所有整数都保留,但换成乘法呢?

整数相乘仍是整数,乘法满足结合律,单位元是 1。但 2 的乘法逆元必须满足 2b=12b=1,即 b=1/2b=1/2,它不是整数。0 更不可能乘上某个整数得到 1。所以 (Z,×)(\mathbb{Z},\times) 不是群。同一个集合,换了运算,结论就变了。

整数减法为什么也不行?

差仍然是整数,但结合律失败:(5−3)−1=2−1=1(5-3)-1=2-1=1,而 5−(3−1)=5−2=35-(3-1)=5-2=3。同样的 5、3、1,顺序没有变,仅仅改变括号,结果就不同。并且 a−0=aa-0=a 只说明右边减去 0 不改变 aa;左边 0−a=−a0-a=-a 通常不是 aa,所以 0 也不是双侧单位元。

用群的规则解一个方程

现在回答“学这个有什么用”。我们不再限定整数加法,而是假设 (G,⋆)(G,\star) 是任意一个群。已知其中的元素 aa 和 bb,想找元素 xx,使 a⋆x=ba\star x=b。这句话说的是:已知第一个输入和结果,求第二个输入。

不能直接写“把 aa 移到右边变号”,因为当前运算可能根本不是加法。我们能用的是定义已经保证的逆元:a−1⋆a=ea^{-1}\star a=e。为了让它与左端的 aa 相邻,我们在等式两边都从左边组合一个 a−1a^{-1}。同一个运算作用于相等的对象,结果仍然相等。

上方保留原式。逐行展开,查看每一步用了哪条规则;前面的步骤会一直保留。

  1. a⋆x=ba\star x=b

    从需要满足的等式开始。

1 / 5

我们刚才说明:如果有解,它一定等于 a−1⋆ba^{-1}\star b。还需要确认这个候选真的存在于集合里、真的满足原式。封闭性保证 a−1⋆b∈Ga^{-1}\star b\in G。代回去:a⋆(a−1⋆b)=(a⋆a−1)⋆b=e⋆b=ba\star(a^{-1}\star b)=(a\star a^{-1})\star b=e\star b=b,依次使用结合律、逆元、单位元条件。所以它确实是解;又因为任何解都被迫等于它,解只有一个。

在整数加法中,取 a=3,b=7a=3,b=7。aa 的逆元是 −3-3,因此 x=(−3)+7=4x=(-3)+7=4;代回 3+4=73+4=7,成立。开头的例子写作 x+3=7x+3=7,它也是 4,因为整数加法允许交换顺序。但一般的群没有这项保证:若未知元素在左边,x⋆a=bx\star a=b,应当从右侧组合 a−1a^{-1},得到 x=b⋆a−1x=b\star a^{-1}。位置必须保留。

把右侧求解也完整写出来:(x⋆a)⋆a−1=b⋆a−1(x\star a)\star a^{-1}=b\star a^{-1};结合律给出 x⋆(a⋆a−1)=b⋆a−1x\star(a\star a^{-1})=b\star a^{-1};逆元条件给出 x⋆e=b⋆a−1x\star e=b\star a^{-1};单位元条件给出 x=b⋆a−1x=b\star a^{-1}。代回得到 (b⋆a−1)⋆a=b⋆(a−1⋆a)=b⋆e=b(b\star a^{-1})\star a=b\star(a^{-1}\star a)=b\star e=b。所以这边也存在唯一解。

现在再来看正方形

到这里,群已经有明确的含义:一个集合、一种运算,以及对所有元素成立的封闭性、结合律、单位元和逆元条件。我们也已经用这些条件推导出求未知元素的方法。下面换一种对象,看看同样的定义能不能真正工作。

下面正方形模型里的元素,是“把带标记的正方形转动或反射后,仍恰好覆盖原轮廓的操作”。运算表示连续执行两个操作,并保留它们的执行顺序。元素不是方块的颜色,也不是四个角本身。为什么要用带标记的图?因为没有标记时,转过的正方形看起来可能和原来一样,我们就无法追踪操作做了什么。模型会保留起点、中间状态和终点,方便你比较,并逐条核对刚才的定义。

定义参考:MIT 18.703 · Groups

数学
从具体的动作开始

从方块的动作认识群

假设我们要照一张指令表摆放一块正方形卡片。卡片四个角分别写着 AA、BB、CC、DD,可以转动,也可以翻面,但最后必须恰好盖住桌上的正方形轮廓。指令很长时,我们想知道:哪些步骤可以合并?顺序可不可以交换?做完以后又该怎么恢复原状?

这些问题问的是几个动作合起来会做成什么,与方块的大小无关。群论研究的是:一组对象在一种运算规则下怎样组合。解决方块的具体问题时,我们会检查这套对象和规则是否符合群的定义,并用这些规则缩短动作串、撤销动作。这一页会把这些用途完整展示出来。

只需要会辨认四个角、顺时针方向和整数加减。转角、反射和后面用到的记号都会在使用前解释。

01

轮廓没变,为什么还要记录?

先看下面左边的图。左上、右上、右下、左下是桌上固定的位置,中心点也固定。AA 是金黄色,BB 是绿色,CC 是蓝色,DD 是粉色,字母和彩色标记都跟着卡片走。颜色只是帮助辨认,每个角始终带着自己的字母。

把卡片顺时针转四分之一圈,AA 从左上来到右上,BB 来到右下,CC 来到左下,DD 来到左上。外轮廓仍是同一个正方形,可是四个字母的位置已经不同。如果只记录“还是正方形”,我们就把想知道的信息丢掉了。

原来的位置

原来的位置左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

顺时针转四分之一圈以后

顺时针转四分之一圈以后左上D右上A右下B左下C
D · A · B · C
从左上开始,顺时针读字母

这里要分清两件事。图上字母目前在哪里,叫作状态;“顺时针转四分之一圈”是一条改变状态的动作指令。同一个动作可以从不同状态开始执行。下面用 RR 表示这条指令,不是只表示右上有 AA 的那张图片。

群论在这里的用途,是把一长串动作变成可以计算的东西。比如连续做两次 RR,到底等同于哪一个动作?如果每次都从头摆卡片,一长串指令会很难核对。有了少量动作之间的组合规则,就能反复使用同一套规则处理更长的指令。

02

先只允许转动

一整圈规定为 360°,所以四分之一圈就是 360∘÷4=90∘360^\circ \div 4 = 90^\circ。连续转两次是 90∘+90∘=180∘90^\circ + 90^\circ = 180^\circ,三次是 180∘+90∘=270∘180^\circ + 90^\circ = 270^\circ,四次是 270∘+90∘=360∘270^\circ + 90^\circ = 360^\circ。最后四个角都回到各自原来的位置。

点击“下一个动作”,每次执行一次 RR。你可以跟着 AA 的位置移动,也可以核对其他三个角。左图一直保留起始状态;右图停在当前一步的结果。“逐步播放”会依次做四次,不会自动跳到下一节。可以随时暂停、重置,或点选某一步查看。

把起始状态留在这里

把起始状态留在这里左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

做了 0 个动作后

做了 0 个动作后左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母
已完成:0 / 4
现在还没有执行指令。

点选某一步会自动暂停,方便检查。图中保留的是每个动作完成后的状态,没有模拟动作中途的路径。

我们用 R2R^{2} 表示连续做两次 RR,用 R3R^{3} 表示三次。这里的上标记录重复次数,不是把某个角度拿去平方。什么也不做,记作 ee;转一整圈的过程虽然和不动不同,但它把每一个点送到的最终位置完全相同,所以作为“最终位置的规则”,R4R^{4} 和 ee 是同一个对象。

为什么只留下这四种?我们要求结束时完全盖住原轮廓。AA 只能落到四个角中的一个;只允许转动时,AA 的终点一旦选好,BB、CC、DD 的终点也就跟着确定。ee、RR、R2R^{2}、R3R^{3} 已经把 AA 的四个可能终点全部用到了。转 45° 则会让边和角离开轮廓,所以不在这份动作集合里。

现在约定一个组合记号:a⋆ba \star b 表示做完 aa 后执行 bb。为了不让符号顺序造成误会,本页始终从左向右执行。它不是普通的数的乘法;我们是在给两个动作的组合起一个记号。

R⋆R2=R3,R3⋆R2=R5=RR\star R^2=R^3,\qquad R^3\star R^2=R^5=R

第一个式子把 1 次和 2 次转动接起来,所以一共转 3 次。第二个式子一共转 3+2=53 + 2 = 5 次;前 4 次回到原位,第 5 次再转 90°,所以和 RR 相同。这是用动作推出来的结果,不是要求我们先记住一张表。下面保留起点、中间点和终点,试着把两个下拉框设成 R3R^{3} 和 R2R^{2},逐个角核对这个结果。

1. 两个动作之前

1. 两个动作之前左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

2. 做完 RR

2. 做完 R左上D右上A右下B左下C
D · A · B · C
从左上开始,顺时针读字母

3. 接着做 R2R^2

3. 接着做 R²左上B右上C右下D左下A
B · C · D · A
从左上开始,顺时针读字母
R⋆(R2)=R3R\star (R^2) = R^3
跟着 AA 看:左上 → 右上 → 左下。
03

加入一个转动做不到的动作

只转动时,沿轮廓读 AA、BB、CC、DD 的先后方向不会反过来。可是把卡片沿竖直中线翻面后,左右会互换:左上和右上互换,左下和右下互换。原先顺时针读到的 AA、BB、CC、DD,现在要逆时针才读到。任何转动都做不出这个左右互换的效果,所以要加入一个新动作。

把每个点放到直线另一边、离直线同样远的位置,这种动作叫反射。这里选竖直中线作那条线,记动作 FF。假定字母在卡片两面都能读到;图只记录角的位置,不要求我们在脑中想象翻面过程。虚线留在桌上的固定位置,第二幅图把交换后的终点直接画出来。

反射之前

反射之前左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

关于同一条竖线反射之后

关于同一条竖线反射之后左上B右上A右下D左下C
B · A · D · C
从左上开始,顺时针读字母

FF 做两次,会把每一对角交换回来,所以 F⋆F=eF \star F = e。我们也可以在转动后做 FF。转动角度分别为 0、90°、180°、270° 时,随后的反射会给出四种不同的结果。下面可以选择转动角度;中图保留转完的状态。把中图沿固定的竖直中线左右互换,就得到右图。

起始状态

起始状态左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

先做转动

先做转动左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

再做 F

再做 F左上B右上A右下D左下C
B · A · D · C
从左上开始,顺时针读字母
e⋆F=Fe\star F = F

这四种结果也分别是沿四条不同直线的反射。先看四个字母的终点:FF 交换左右;R⋆FR \star F 固定 AA、CC 而交换 BB、DD,所以是沿左上到右下的对角线反射;R2⋆FR^{2} \star F 交换上下;R3⋆FR^{3} \star F 固定 BB、DD 而交换 AA、CC,所以是沿另一条对角线反射。下面虚线显示各自等效的反射线,图显示完成后的结果。

为什么总共恰好是 8 种,而不是还有漏掉的动作?AA 的终点有 4 个选择。BB 原本与 AA 相邻,刚性动作保持边长,所以 BB 必须落在 AA 终点旁边的两个角之一,不能落到对角。AA、BB 的终点选好以后,CC 是 BB 旁边尚未用到的角,DD 是最后一个角,没有其他选择。因此最多只有 4×2=84 \times 2 = 8 种。上面的 4 个转动和 4 个反射彼此不同,已经达到 8 种,所以没有遗漏。

我们只根据最终点的位置来区分这些动作,把完全保持原轮廓的这种动作叫作正方形的对称。四个转动组成的群通常记作 C4C_{4};加入反射后的这八个对称,在本页记作 D4D_{4}。下标 4 指正方形的四条边,不是说 D4D_{4} 只有四个动作。我们马上逐条检查为什么这里能使用“群”这个名字。

04

先后顺序真的重要吗?

只看转动时,90° 与 180° 两次转动无论按哪种顺序进行,总角度都是 270°。这容易让我们猜测所有动作都能交换顺序。可是加入反射后,这个猜测就要重新检查。下面把 RR 选为第一个动作,把 FF 选为第二个动作。三幅图保留原状和每一步,下方两幅图把相反顺序的最终结果并排放好。

1. 两个动作之前

1. 两个动作之前左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

2. 做完 RR

2. 做完 R左上D右上A右下B左下C
D · A · B · C
从左上开始,顺时针读字母

3. 接着做 FF

3. 接着做 F左上A右上D右下C左下B
A · D · C · B
从左上开始,顺时针读字母
R⋆(F)=R⋆FR\star (F) = R\star F
跟着 AA 看:左上 → 右上 → 左上。

R→FR \to F

R \to F左上A右上D右下C左下B
A · D · C · B
从左上开始,顺时针读字母

F→RF \to R

F \to R左上C右上B右下A左下D
C · B · A · D
从左上开始,顺时针读字母

左边是选定的顺序。右边重新从起始状态出发,把同样两个动作的顺序反过来。

两个状态不同:这一对动作不能交换顺序。

我们跟着 AA 走一遍:RR 把它从左上送到右上,接下来的 FF 把它送回左上。反过来做,FF 把 AA 送到右上,接下来的 RR 却把它送到右下。一个结果在左上,另一个在右下,只用 AA 就已经证明两种组合不同。这叫不满足交换律:不能对所有 aa、bb 都断言 a⋆b=b⋆aa \star b = b \star a。不是说每一对都不同,比如 ee 和任何动作仍然能交换。

现在才把全部组合整理成一张表。拿第 RR 行、第 FF 列来说,AA 的路线刚才已经检查过;BB 从右上到右下,再到左下;CC 从右下到左下,再到右下;DD 从左下到左上,再到右上。因此从左上顺时针读最终字母是 AA、DD、CC、BB,正好与 R⋆FR \star F 的图一致。每一格都是这样,把第一个动作的终点交给第二个动作,而不是把两个字母名字相加。

因此,只记录“转了几次、反射了几次”还不够。RR 后 FF 和 FF 后 RR 都各有一次转动、一次反射,计数相同,结果却不同。我们需要把顺序以及动作之间怎样组合也记下来;组合表正好保留了单独计数会丢掉的信息。

行是第一个动作,列是第二个动作。点选一格,检查四个角各自怎么走到结果。小屏幕可以横向滚动。
动作 1 ↓ / 动作 2 →eeRRR2R^2R3R^3FFR⋆FR\star FR2⋆FR^2\star FR3⋆FR^3\star F
ee
RR
R2R^2
R3R^3
FF
R⋆FR\star F
R2⋆FR^2\star F
R3⋆FR^3\star F
选中的组合:(R)⋆(F)=R⋆F: (R) \star (F) = R\star F
把每个角的中间位置,交给第二个动作处理。
角起点第一次后第二次后
A左上右上左上
B右上右下左下
C右下左下右下
D左下左上右上

核对四个角的终点

核对四个角的终点左上A右上D右下C左下B
A · D · C · B
从左上开始,顺时针读字母
05

哪些性质让这些计算可靠?

表格可以帮我们算出结果,可是我们还想知道为什么能一直这样算。接下来不是突然加四条需要死记的规定,而是检查刚才缩短和撤销动作所依靠的事情。

1. 两个动作合起来,还在这份集合里

每个动作都保持点之间的距离,并把正方形放回原轮廓。完成第一个动作时,这两个条件成立;第二个动作也保持距离和轮廓,所以组合仍是一个正方形对称。上一节已经证明所有这样的对称只有那 8 个,因此组合必定是表中某一个。我们把“集合里任意两个对象运算以后,结果仍在集合里”叫作封闭性。

2. 可以改变括号,不能借此交换顺序

假设执行顺序是 aa、bb、cc。查表时,我们可以把 aa、bb 合成一个动作,并把 cc 接在后面;也可以把 bb、cc 合成一个动作,放在 aa 后面。这两种分组是否总会得到相同结果,不能靠几次实验来断定。我们用任意一个点 PP 检查。

用 a(P)a(P) 表示点 PP 执行 aa 后的位置,b(a(P))b(a(P)) 就是把这个新位置再交给 bb。沿三个动作走,PP 的路线总是 PP → a(P)a(P) → b(a(P))b(a(P)) → c(b(a(P)))c(b(a(P)))。不论括号先圈住前两个动作,还是后两个动作,每个点的最终位置都是 c(b(a(P)))c(b(a(P)));这一步没有交换 aa、bb、cc 的执行顺序。

(a⋆b)⋆c=a⋆(b⋆c)(a\star b)\star c=a\star(b\star c)

这就是结合律。括号只是在决定先计算哪一部分,不是在调整动作顺序。它使我们能放心把长串里的相邻几步先合并;上一节看到的 RR 和 FF 不能交换,与这里完全不矛盾。

3. 需要一个“不改变任何东西”的动作

把“不动”放在 aa 前面或后面,效果都与只做 aa 相同。所以 e⋆a=ae \star a = a,并且 a⋆e=aa \star e = a,对每个 aa 都成立。ee 叫作单位元。它不是数字 1,只是在当前运算里起“不改变结果”的作用。原状是一张状态图,而 ee 是把任何起始状态都保持不变的动作,要保留这个区别。

4. 每一个动作都要能够撤销

RR 和 R3R^{3} 连续执行,一共转 4 次,回到原位;交换这两个动作的顺序,结果也一样。因此 RR 的逆元是 R3R^{3}。连续做两次 R2R^{2},转过 180∘+180∘=360∘180^\circ + 180^\circ = 360^\circ,所以它的逆元是自己。ee 的逆元仍是 ee。沿同一条线反射两次,会把每个点从直线另一侧送回原位置,因此四种反射各自的逆元也是自己。

用 a−1a^{-1} 表示能撤销 aa 的那个动作,这不是把动作拿去做数字的除法。它满足 a⋆a−1=ea \star a^{-1} = e,也满足 a−1⋆a=ea^{-1} \star a = e。对刚才选择的反射,下面把计算直接写出来;也可以回到表格核对。

(F)⋆(F)=e(F) \star (F) = e

现在给这套结构一个名字

集合就是一份对象的清单,可以有限,也可以无限。运算是从清单里选两个对象后,按确定规则得到一个结果。把一个集合 GG 与一个运算 ⋆\star 放在一起,如果满足下面四条条件,就把 (G,⋆)(G, \star ) 叫作群。这是“群”这个名字的定义,不是声称世界上所有运算都会满足这些条件。

  1. 封闭性:GG 里的任意 aa、bb 都能按规则组合,结果 a⋆ba \star b 仍在 GG 里。
  2. 结合律:任意三个对象都满足 (a⋆b)⋆c=a⋆(b⋆c)(a \star b) \star c = a \star (b \star c)。
  3. 单位元:GG 里有一个 ee,使每个 aa 都满足 e⋆a=a⋆e=ae \star a = a \star e = a。
  4. 逆元:每个 aa 都有一个仍在 GG 里的 a−1a^{-1},使 a⋆a−1=a−1⋆a=ea \star a^{-1} = a^{-1} \star a = e。

群不是那块正方形本身,而是“这 8 个动作,加上先后组合的运算”。只取四个转动也组成群:两次转动合起来仍是四种转动之一,结合律沿用刚才对任意点的证明,ee 在集合里,而且 ee、RR、R2R^{2}、R3R^{3} 的逆元分别是 ee、R3R^{3}、R2R^{2}、RR,也都在里面。交换律没有列在群的定义中,因此群可以像四种转动这样能交换,也可以像全部八种动作这样不能总是交换。

06

回到最初的指令表

现在给卡片一串具体指令:RR、FF、RR、FF、RR、RR,也就是转、反射、转、反射、转、转。我们想保留每个角的最终位置,把指令缩短,并找出恢复原状的办法。用下方按钮逐步执行,就能把每一步的位置与后面的计算对照。

把起始状态留在这里

把起始状态留在这里左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

做了 0 个动作后

做了 0 个动作后左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母
已完成:0 / 6
现在还没有执行指令。

点选某一步会自动暂停,方便检查。图中保留的是每个动作完成后的状态,没有模拟动作中途的路径。

前两步合起来是 R⋆FR \star F,第三、四步也一样。我们已经看到 R⋆FR \star F 等同于沿一条对角线反射,同一个反射做两次就恢复原状。因此前四步合起来是 ee。剩下两个 RR 合起来是 R2R^{2},整段六步就等同于顺时针转 180°。

(R⋆F)⋆(R⋆F)⋆(R⋆R)=e⋆R2=R2(R\star F)\star(R\star F)\star(R\star R)=e\star R^2=R^2

这里每一步都有依据:结合律允许我们把相邻动作括起来;反射的逆元是自己,所以前两组抵消;单位元不会改变剩下的 R2R^{2}。我们没有为了抵消而擅自交换 RR 和 FF。要恢复原状,再做 R2R^{2} 就行,因为 R2⋆R2=eR^{2} \star R^{2} = e。最后从左上顺时针读到 CC、DD、AA、BB,恢复后则重新读到 AA、BB、CC、DD。

六步之后:等同 R2R^2

六步之后:等同 R²左上C右上D右下A左下B
C · D · A · B
从左上开始,顺时针读字母

再做 R2R^2:恢复原状

再做 R²:恢复原状左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

如果暂时没看出怎么缩短,仍然有一个通用的撤销办法:倒着执行每一步的逆动作。原指令最后一步 RR 用 R3R^{3} 撤销,倒数第二步 RR 也用 R3R^{3} 撤销;接下来依次是 FF、R3R^{3}、FF、R3R^{3}。为什么要倒着?撤销最后一步,我们就回到它还没有发生时的状态。对更早的步骤重复这样做,就能逐个退回起点。

这就是本页已经完成的用途:把不方便直接检查的六步指令缩成一步,证明两张不同的指令表效果相同,并找出恢复方法。群的规则把这些理由整理在一起,保证在其他同样满足四条条件的对象里,也能按相同逻辑组合和撤销。它不会自动替我们解决所有问题,但让这些操作有了可以检查的依据。

07

离开方块,规则还能留下吗?

刚才定义群时,没有要求对象一定是转动,也没有要求集合只有有限个对象。不如检查一套熟悉的对象:整数 …、−2-2、−1-1、0、1、2、…,通常记作 Z\mathbb Z,运算选普通加法。我们可以把 +3+3 看成沿数轴向右走 3 格,−2-2 看成向左走 2 格。走完这两段,总位移是向右 1 格,即 3+(−2)=13 + (-2) = 1。

用有方向的步数表示整数加法-3-2-101234先走:+3再走:−2
每格是 1 个单位。金色路线向右走 3 格,绿色路线向左走 2 格。为了看清先后,路线画在数轴上方;高低位置不表示另一种移动方向。

封闭性来自整数步数相加:走完两段整数步,仍落在整数位置。结合律来自同一串向左或向右的单位步:把前两段先计总数,或把后两段先计总数,都没有增减或改动任何一步,所以总位移相同,即 (a+b)+c=a+(b+c)(a + b) + c = a + (b + c)。这里用的是整数加法本来的规则,不是对任意新运算作出猜测。

加上 0 就是不走,所以 0+a=a+0=a0 + a = a + 0 = a,单位元是 0。走 aa 对应的步数后,再走方向相反的 −a-a,每一步都能配对抵消,所以 a+(−a)=(−a)+a=0a + (-a) = (-a) + a = 0;每个整数 aa 的逆元是 −a-a,也在 Z\mathbb Z 里面。因此 (Z,+)(\mathbb Z, +) 是群。这个群有无限多个对象,和方块的八个动作不同,可是刚才检查的四条条件相同。

作为对应,方块里的 ee 在这里变成 0,“再做一个动作”变成加上一个整数,撤销动作变成加上相反数。名字相同,是因为组合关系有相同的几条性质,不是说整数真的就是一块方块。

并非换个集合、换个运算都可以

如果只保留 0、1、2、3、…,还是做加法,单位元 0 还在,结合律和封闭性也还在。但想撤销 +3+3,就需要一个 bb 满足 3+b=03 + b = 0;两边减 3,得到 b=−3b = -3,而 −3-3 已被排除。缺一个逆元就不满足群的定义,所以非负整数的加法不是群。

再把集合改回所有整数,却把运算换成减法。此时 (5−3)−1=2−1=1(5 - 3) - 1 = 2 - 1 = 1,可是 5−(3−1)=5−2=35 - (3 - 1) = 5 - 2 = 3。两种分组结果不同,结合律失败,所以整数配减法也不是群。判断是不是群,必须同时说清集合和运算,单独说“整数是群”会漏掉重要信息。

08

小测试:把理由也说出来

可以回到上面的图和表找线索。写下自己的想法后,用展开的答案核对。答案不仅给出动作名字,还会说明这样做的理由。

1. 已经做了 R3R^{3},只允许转动。再做什么恢复原状?

再做 RR。原来转了三次 90°,补一次就是 270∘+90∘=360∘270^\circ + 90^\circ = 360^\circ,所有点回到原位,因此 R3⋆R=eR^{3} \star R = e。不能因为上标是 3 就猜要再做三次:那样是 3+3=63 + 3 = 6 次,去掉一整圈的 4 次后还剩两次,得到 R2R^{2}。

2. 为什么可以改括号,却不可以随意交换 RR 和 FF?

改括号不改变动作从左到右的执行顺序,每个点依然按第一个、第二个、第三个动作的次序移动,所以终点相同。交换 RR 和 FF 却会改变路线:AA 在 R⋆FR \star F 后回到左上,在 F⋆RF \star R 后来到右下。结合律讨论分组,交换律讨论次序,两者问的不是同一件事。

3. 只交换 AA 和 BB,CC、DD 不动,算不算正方形对称?

不算。原来 BB 在右上、CC 在右下,边 BC 沿着方块的右边界。单独交换 AA、BB 后,BB 来到左上,CC 仍在右下,直线段 BC 就变成穿过方块内部的对角线。刚性动作会把直线段送到相应两端点之间的直线段;原边界的一部分被送进了内部,就不再是把整个边界送回原边界的动作。所以这种单独交换不在我们的 8 个对称里。

原来:BC 是右边界

原来:BC 是右边界左上A右上B右下C左下D
A · B · C · D
从左上开始,顺时针读字母

仅交换 AA、BB 后

不能保持边界的交换左上B右上A右下C左下D
虚线段:BC 现在穿过内部,不在边界上。
4. 只保留 ee 和 RR,仍然使用原来的动作组合,能组成群吗?

不能。ee 与 ee 组合得到 ee,ee 与 RR 无论先后都得到 RR,这些结果还在集合里。可是 RR 与 RR 组合得到 R2R^{2},而我们只保留了 ee 和 RR,R2R^{2} 不在集合里。因此连封闭性都没有满足,不需要再检查其他条件,就已经知道它不是群。挑选群里的几个对象,并不保证挑出的对象仍然组成群;要对这份更小的集合重新逐条检查。

回头看,最初我们只想把方块摆对、把长指令缩短并恢复原状。沿着这几个具体问题,我们得到了组合、封闭性、结合律、单位元和逆元,最后才把同时满足这些条件的集合与运算叫作群。这里结束的是一个完整的小问题;群论的进一步内容可以以后再学,不影响我们已经理解的这些理由。