火龙信奥
  • 分享
  • 课程
  • 在线题库
  • CSES
    • GESP
    • CSP
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • e课堂
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

波利亚定理(Pólya Theorem)详解与实战演练

作者: 作者的头像   huolong , 时间:2026-09-12 16:21:00 , 所有人可见, 阅读  7

波利亚定理(Pólya Theorem)详解与实战演练


一、 核心问题背景:手环计数

题目中提到:有 $n$ 个点的手环,用 $m$ 种颜色着色,旋转或翻转后能相互得到的视为同一种方案。

在组合数学中,像这种可以“旋转”和“翻转”的环形结构(即手环/手镯问题),其对称动作构成的群在数学上称为二面角群(Dihedral Group, $D_n$)。

  • 旋转对称:有 $n$ 种(转 $0^\circ, \frac{360^\circ}{n}, \frac{2 \times 360^\circ}{n}, \dots$)。
  • 翻转对称:因为手环可以翻过来(背面朝上),对于 $n$ 个点,有 $n$ 条对称轴(当 $n$ 为奇数时是过每个顶点和对边中点的轴;当 $n$ 为偶数时是过相对顶点或相对边中点的轴),所以一共有 $n$ 种翻转动作。
  • 总对称动作数:$|G| = 2n$。

二、 波利亚定理公式回顾

对于颜色数为 $m$、对称群为 $G$ 的对象,本质不同的着色方案数 $N$ 为: $$N = \frac{1}{|G|} \sum_{g \in G} m^{c(g)}$$ * $|G|$:总对称动作数。 * $c(g)$:在具体某个对称动作 $g$ 下, $n$ 个点被分成了多少个不相交的循环节(闭环)。


三、 实战演练:当 $m=5$ 且 $n=4$ 时

我们代入具体数值:有 4个点 ($n=4$),可用 5种颜色 ($m=5$)。 总对称动作数 $|G| = 2n = 2 \times 4 = 8$ 种。

这 8 种动作可以分为两大类:4种旋转动作 和 4种翻转动作。我们分别计算每种动作的循环节数 $c(g)$。

设 4 个点顺时针编号为 $1, 2, 3, 4$。


第一部分:4 种旋转动作

  1. 旋转 $0^\circ$(不动,恒等变换)
  2. 每个点自成一个循环:$(1)(2)(3)(4)$
  3. 循环节数 $c(g) = 4$
  4. 贡献方案数:$5^4 = 625$

  5. 旋转 $90^\circ$

  6. 路径:$1 \to 2 \to 3 \to 4 \to 1$
  7. 四个点串成一个大环:$(1\ 2\ 3\ 4)$
  8. 循环节数 $c(g) = 1$
  9. 贡献方案数:$5^1 = 5$

  10. 旋转 $180^\circ$

  11. 路径:$1 \to 3$ ($3 \to 1$),2 $\to$ 4 ($4 \to 2$)
  12. 形成两个对角互换的小环:$(1\ 3)(2\ 4)$
  13. 循环节数 $c(g) = 2$
  14. 贡献方案数:$5^2 = 25$

  15. 旋转 $270^\circ$

  16. 路径:$1 \to 4 \to 3 \to 2 \to 1$
  17. 形成一个大环:$(1\ 4\ 3\ 2)$
  18. 循环节数 $c(g) = 1$
  19. 贡献方案数:$5^1 = 5$

第二部分:4 种翻转动作(轴对称翻转)

对于正方形(4个点),翻转轴有两种: * 过相对顶点的对角线翻转(共 2 条轴): * 例如沿过点 1 和点 3 的轴翻转:点 1 不动,点 3 不动,点 2 和点 4 互换。 * 循环分解:$(1)(3)(2-4)$ * 循环节数 $c(g) = 3$ * 贡献方案数:$5^3 = 125$ * 因为有 2 条这样的对角线轴,所以这种贡献有 2 个。

  • 过相对边中点的垂直平分线翻转(共 2 条轴):
  • 例如沿 1-2 边中点和 3-4 边中点的轴翻转:点 1 和点 2 互换,点 3 和点 4 互换。
  • 循环分解:$(1-2)(3-4)$
  • 循环节数 $c(g) = 2$
  • 贡献方案数:$5^2 = 25$
  • 因为有 2 条这样的中线轴,所以这种贡献也有 2 个。

四、 汇总计算

将所有 8 种动作的贡献相加,再除以总动作数 8:

$$N = \frac{1}{8} \left[ \underbrace{5^4}_{\text{0°}} + \underbrace{5^1}_{\text{90°}} + \underbrace{5^2}_{\text{180°}} + \underbrace{5^1}_{\text{270°}} + \underbrace{2 \times 5^3}_{\text{2条对角线翻转}} + \underbrace{2 \times 5^2}_{\text{2条中线翻转}} \right]$$

代入具体数值计算: * $5^4 = 625$ * $5^1 = 5$ * $5^2 = 25$ * $5^1 = 5$ * $2 \times 5^3 = 2 \times 125 = 250$ * $2 \times 5^2 = 2 \times 25 = 50$

把括号内的数字求和: $$625 + 5 + 25 + 5 + 250 + 50 = 960$$

最后除以 8: $$N = \frac{960}{8} = 120$$


五、 总结与结论

当 $m=5$ 且 $n=4$ 时,通过波利亚定理严格计算可得,一共有 120 种本质不同的手环着色方案。


箭头的含义

理解波利亚定理中置换的“箭头($\to$)”和“循环”,是掌握这门技术的关键。

为了彻底搞懂它,我们抛开枯燥的公式,把正方形的 4 个顶点 想象成 4 把椅子(编号为 1, 2, 3, 4,顺时针排列),上面坐着 4 个人(或者涂着颜色)。

当我们对正方形施加一个旋转动作时,椅子本身移动了,但椅子原来的位置还在。这里的箭头 $1 \to 2$ 意思是:“原来 1 号位置上的人,在旋转后被挤到了 2 号位置上。”

下面我们逐个动作拆解。


一、 旋转 $90^\circ$(顺时针转一下)

把正方形顺时针转 $90^\circ$: * 原来坐在 1 号位置(正上方)的人,被转到了 2 号位置(正右方)。所以:$1 \to 2$ * 原来坐在 2 号位置(正右方)的人,被转到了 3 号位置(正下方)。所以:$2 \to 3$ * 原来坐在 3 号位置(正下方)的人,被转到了 4 号位置(正左方)。所以:$3 \to 4$ * 原来坐在 4 号位置(正左方)的人,被转回了 1 号位置(正上方)。所以:$4 \to 1$

把它们连起来看: $$1 \to 2 \to 3 \to 4 \to 1$$ 你会发现,这 4 个人(或 4 个位置)形成了一个闭环(像击鼓传花一样,你传给我,我传给他,最后转了一圈回到原点)。 * 因为它们全在同一个大圈里,所以“循环节数” $c(g) = 1$。

为什么贡献方案数是 $5^1 = 5$? 因为在同一个大圈里的所有位置,必须涂完全相同的颜色。 为什么?因为如果 1 号涂红色,转 $90^\circ$ 后 1 号的东西会跑到 2 号上,为了让旋转后的整体图案看起来和原来一模一样,2 号必须也是红色;同理 3 号、4 号也必须是红色。 所以,整个大圈只能同色。5 种颜色中任选 1 种,所以只有 5 种 方案(全红、全蓝、全黄等)。


二、 旋转 $180^\circ$(顺时针转两下)

把正方形顺时针转 $180^\circ$(相当于倒过来): * 原来在 1 号(正上方)的人,直接转到了对面的 3 号(正下方)。所以:$1 \to 3$(反过来,3 也会转到 1,即 $3 \to 1$) * 原来在 2 号(正右方)的人,直接转到了对面的 4 号(正左方)。所以:$2 \to 4$(反过来 $4 \to 2$)

写成路径就是: $$1 \to 3 \quad \text{和} \quad 2 \to 4$$ 这时候,它们没有把 4 个点全串起来,而是分成了两个独立的小对子: 1. 位置 1 和位置 3 互相换。 2. 位置 2 和位置 4 互相换。 * 因为有两个这样的小圈,所以“循环节数” $c(g) = 2$。

为什么贡献方案数是 $5^2 = 25$? * 小圈一(1和3):它俩互换,所以 1 和 3 必须涂相同的颜色(5种选择)。 * 小圈二(2和4):它俩互换,所以 2 和 4 必须涂相同的颜色(5种选择)。 * 两个小圈各自独立选择颜色,所以总方案数是 $5 \times 5 = 5^2 = 25$ 种。


三、 旋转 $270^\circ$(顺时针转三下)

相当于逆时针转 $90^\circ$: * 1 号位置的人会跑到左边的 4 号:$1 \to 4$ * 4 号的会跑到下边的 3 号:$4 \to 3$ * 3 号的会跑到右边的 2 号:$3 \to 2$ * 2 号的会跑回上边的 1 号:$2 \to 1$

连起来: $$1 \to 4 \to 3 \to 2 \to 1$$ 这依然是把 4 个点全部串在了一起,形成了一个超级大闭环。 * 循环节数 $c(g) = 1$。 * 大圈里的所有点必须同色,所以贡献方案数是 $5^1 = 5$ 种。


💡 总结成一句话

  • 箭头($\to$):表示“旋转后,原来这里的东西跑去了那里”。
  • 循环(圈):顺着箭头追踪,看几个位置会形成一个闭环。
  • 循环节数 $c(g)$:一共有多少个这样的闭环。
  • 核心结论:一个闭环内的所有点,必须涂同一种颜色。 有几个闭环($c(g)$),你就拥有几组独立自主选择颜色的权力,所以方案数就是 $m^{c(g)}$。

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

关于火龙

  • 关于我们
  • 学员获奖
  • 预约试听
  • ACM课程
  • CSP课程
  • 学习指南

帮助中心

  • 用户协议
  • 打字练习 HOT
  • 在线画图
  • DevC++下载
  • CSP报名
  • GESP官网

推荐课程

  • C++零基础入门(可试看)
  • C++进阶提升
  • GESP考级辅导
  • GESP打卡
  • CSP-J/S打卡

公众号

火龙信奥公众号二维码

© 2017-2026 义乌市睿码科技有限公司版权所有 浙ICP备2021013995号

火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码