zoukankan      html  css  js  c++  java
  • Burnside引理和Polya定理简单入门

    不学这个定理,真是亏死了……
    见到那种对称(循环)的计数题都不知道该怎么做……


    先表明一下,本人没有群论基础。
    所以,有关群论的概念,我只会提“置换”。
    对于初学者来说,这可能是更加容易理解的方法吧。
    更加严谨的网上博客一大堆。


    例子

    给你一个长度为(n)的环,有(m)种颜色,每个点可以染成任意颜色。
    循环同构的环算是同一种方案(为方便讨论就先不考虑翻转)。
    问有多少种方案。
    以下以这个例子作为说明。


    Burnside引理

    首先,对于某种状态,看看它进行哪些置换之后会变成某种跟它循环同构的状态。
    比如说,在这题中,转(0)下,转(1)下……转(n-1)下,总共可以写出(n)种置换。
    后面给这些置换都分配一个下标。

    接下来介绍不动点:对于置换(k),假如某个状态经过了置换(k)的操作后变成的状态和前面的是一样的,那就是一个不动点。
    更加形象的理解:将每个状态都视为一个点,每个点向进行了置换(k)之后到达的状态连边。于是形成了由若干个环形成的图。那么所有的自环都是不动点。
    设置换(k)的不动点为(c(k)),那么不重不漏的方案数就是(frac{1}{|G|}sum_{kin G}c(k))
    其中(G)表示置换的集合。

    以下给出在这个例子中的证明,加深一下理解(可能不是很严谨):
    在置换(k)中,假如某种方案最小正周期为(x),如果(x|k),则会被计算(x)次。
    对于一个最小正周期为(x)的方案,在统计循环节为(ix)的时候计算(x)次,其中(iin[0,frac{n}{x})),所以它一共被计算(n)次。


    Polya定理

    gmh说Burnside引理和Polya定理之间是马克思和列宁之间的关系……
    这个东西是在Burnside的基础上搞出来的具体计算方法。

    现在建另一个图:对于置换(k),某个点(i)连向(p_i)(即置换之后到达的位置,在例子中是((i+k)mod n)
    这样形成的图也是个由若干个环组成的图。

    作为一个不动点的状态,它在这个图上有什么性质呢?
    可以发现,如果每个环,环内的颜色分别相同,那么它就是个不动点。
    于是不动点的个数为(m^{sigma (k)}),其中(sigma(k))表示置换(k)通过这种方法建出来的图的环数。
    式子就出来了:(frac{1}{|G|}sum_{kin G}m^{sigma(k)})

    在例子中,(sigma(k)=gcd(n,k))原因你猜
    问题变成了:(frac{1}{n}sum_{k=0}^{n-1}m^{gcd(n,k)})
    至于后面怎么做,枚举(gcd(n,k)),套个反演之类的东西,应该就差不多了。。

  • 相关阅读:
    [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS
    [转载]SELinux安全系统基础
    Linux NFS服务器的安装与配置
    将可执行程序设为linux服务启动
    不关闭selinux下配置php+httpd访问KingbaseES
    [转载]SELinux安全系统基础
    解决samba和SELINUX 冲突
    [转载]在线文本编辑器的基本实现原理
    [转载]使用postgresql安装wordpress
    [转载]php连接postgreSQL数据库及其操作(php5,postgreSQL9)
  • 原文地址:https://www.cnblogs.com/jz-597/p/12716316.html
Copyright © 2011-2022 走看看