算法

元素阶:把最小周期变成整除

用幂的阶公式、循环群计数和直积周期,处理竞赛中的最小正周期与阶分布。

本页目录6 节

遇到“重复多少次第一次回到原状”,先确认操作是否可逆、状态是否组成群。元素的阶描述的是最小正周期,不能把任意一个可用周期当成答案。

速查 #

以下设 gg 的有限阶为 mm,单位元记为 ee。

要求结论条件
判断 gk=eg^k=em∣km\mid kkk 为整数
求 gkg^k 的阶m/gcd⁡(m,k)m/\gcd(m,k)gcd⁡(m,0)=m\gcd(m,0)=m
在 CmC_m 中数阶恰为 dd 的元素φ(d)\varphi(d)d∣md\mid m;否则为零
在 CmC_m 中数 xk=ex^k=e 的解gcd⁡(m,k)\gcd(m,k)kk 为正整数
求直积元素 (a,b)(a,b) 的阶lcm⁡(ord⁡(a),ord⁡(b))\operatorname{lcm}(\operatorname{ord}(a),\operatorname{ord}(b))两个元素均有限阶

在有限群中,Lagrange 定理只给出元素阶整除群大小,不能反过来断言每个因子都对应某个元素的阶。循环群中才有上表的精确计数。

为什么幂的阶要除以 gcd #

先把最小周期写成整除判据。若 gk=eg^k=e,作带余除法 k=qm+rk=qm+r,0≤r<m0\le r<m,则 gr=eg^r=e。由 mm 的最小性,r=0r=0,所以 m∣km\mid k。

设 d=gcd⁡(m,k)d=\gcd(m,k)。对正整数 tt,

(gk)t=e  ⟺  m∣kt  ⟺  md∣kdt  ⟺  md∣t.(g^k)^t=e \iff m\mid kt \iff \frac{m}{d}\mid \frac{k}{d}t \iff \frac{m}{d}\mid t.

最后一步用到两个商互素,因此最小的 tt 正是 m/dm/d。例如 m=18,k=12m=18,k=12 时,g12g^{12} 的阶是 33,而不是 66 或 1818。

典型例题:循环群里数元素 #

在 C12=⟨g⟩C_{12}=\langle g\rangle 中,求阶恰为 44 的元素。

每个元素唯一写作 gjg^j,0≤j<120\le j<12。由幂的阶公式,

ord⁡(gj)=4  ⟺  gcd⁡(12,j)=3.\operatorname{ord}(g^j)=4 \iff \gcd(12,j)=3.

只有 j=3,9j=3,9,对应 g3,g9g^3,g^9,数量为 φ(4)=2\varphi(4)=2。一般地,若 d∣md\mid m,令 j=(m/d)uj=(m/d)u,阶恰为 dd 等价于 uu 在模 dd 下与 dd 互素,所以数量是 φ(d)\varphi(d)。

若改问 x6=ex^6=e,条件成为 12∣6j12\mid6j,即 jj 为偶数,得到 66 个解。阶恰为 6 与 阶整除 6 是不同问题。

Trick:先数整除,再求精确数量 #

设 GG 为有限群,所有元素的阶均为同一素数 qq 的非负整数次幂。对整数 k≥0k\ge0,记 F(k)F(k) 为阶整除 qkq^k 的元素数。则 F(0)=1F(0)=1;对 k≥1k\ge1,阶恰为 qkq^k 的元素数为 F(k)−F(k−1)F(k)-F(k-1)。

这个相邻差分不能直接套到任意整数阶上:例如阶整除 66 的集合与阶整除 55 的集合并不形成包含关系。一般情形应按约数关系计数,而不是按整数大小作相邻相减。

对有限直积 Cqb1×⋯×CqbrC_{q^{b_1}}\times\cdots\times C_{q^{b_r}},其中 bib_i 为非负整数,各坐标独立,因此对整数 k≥0k\ge0 有

F(k)=q∑imin⁡(k,bi).F(k)=q^{\sum_i\min(k,b_i)}.

E · Exponent将这个计数进一步转成元素阶的加权和,给出完整推导和 C++17 实现。

两个周期合起来为什么不是相乘 #

在直积中,(a,b)t=(e,e)(a,b)^t=(e,e) 当且仅当两个分量都回到单位元,因此 tt 必须同时被它们的阶整除。最小值是最小公倍数。例如阶为 66 和 1010 的两个分量,合起来的阶为 3030,不是 6060。

只有分量的阶互素时才可相乘。这个条件正是 单位群拆分中需要再次按素数分组的原因。

继续阅读与来源 #

返回个人知识手册 · 第二场记录

讨论

评论

正在加载评论…

输入关键词开始搜索。