zoukankan      html  css  js  c++  java
  • polya定理

       polya定理的内容好多啊,虽然公式很简单,但是前面关于群论与置换群的内容就要理解一会儿了。。

       详细的话就看下组合数学,也可看下这个课件http://wenku.baidu.com/view/3dc7027602768e9951e738ca.html

      下面就说一下自己的见解:

         1)关于群与置换群:

             群:就是经过二元运算后还满足 封闭性、结合律、单位元存在、逆元存在性质的集合就是群。。

                  这里的二元运算很广泛,当然也包括+-*/什么的。。。

                举个例子:a,b属于R集,那么,那么a*b当然也属于R了。。那么R对这个运算当然是一个群了

           置换群:实际上就是排列的变化,如 这个就是一个排列到另外一个排列的变化就是一个置换。。a1->ai1

                     a2-->ai2.........

       2)Burnside引理:

            实际上就是把所有的方案列出来,对于每一个置换,把置换下不变的方案数统计出来,累加起来

            最后除以置换总数。。

       3)polya定理:

           就是burnside的优化而已,因为所有的进行一次,时间复杂度o(nsp)太高了,所以得优化

           方法:

               把每种置换写成若干个不想交循环的乘积,比如(1 2 3 4) ->(2 1 4 3) 这个置换就可以写成 (1 2)*(3 4),那么求本质不同的时候,只要每个循环

              里涂一种颜色(想想为什么,因循环内部必须一样,这样在该置换下才是一种方案啊,不然就变成多种了),这样的话就变成2(循环的个数)个位置的染色,所以该置换            下为M^2中方案本质不同的(M为颜色数)

             所以就变成了求每种置换下的循环个数,然后每种对应M^T个方案,T为循环个数,其他跟burnside一样。。

      4)polya与burnside联系:

              两者本质相同,结合起来用是解题是最需要的,因为单纯的burnside复杂度太高,polya适用范围较小,遇到颜色有限制条件时,

              就应该用结合的方法, 用(方案总数) / 置换数 的思想,

                                          用每种置换下找循环个数并 染色的方法求方案的技巧,

                                         从而求出最后答案啊。

  • 相关阅读:
    PHP琐碎学习
    php输出echo、print、print_r、printf、sprintf、var_dump比较
    跨域
    react中配置路径别名
    react antd less(3.11.1) less-loader(5.0.0) webpack(4.42.0)设置antd的主题
    babel-plugin-import配置babel按需引入antd模块
    react配置less步骤
    react配置less后浏览器报错npm install @babel/core @babel/preset-env node_moduleswebpackhotdev-server.js: Cannot find module '@babel/helper-create-regexp-features-plugin'
    win10配置Java环境变量
    关于自定义组件的组件命名规范
  • 原文地址:https://www.cnblogs.com/yzcstc/p/3060448.html
Copyright © 2011-2022 走看看