Poly定理:学习笔记

Polya 定理

Redfield-Polya (Pólya enumeration theorem,简称PET)定理是组合数学理论中最重要的定理之一。

其提出者波里亚在众多数学的分支:函数论、变分学、概率论、数论、组合数学以及计算数学和应用数学领域中,都颇有建树,他共发表了200多篇著名论文,以他的名字命名的Polya计数定理,则是近代组合数学的重要工具。波里亚还是杰出的数学教育家,有著丰富的数学教育思想和精湛的数学教学艺术,他对数学思维一般规律的研究,堪称是对人类思想宝库的特殊贡献。

Polya 定理可以用于解决关于集合互异状态的计数问题,是解决此类问题的简洁高效的一个工具

例题引入

描述

把一个 \(2\times 2\) 的方格棋盘用黑白两色涂色,规定经过旋转重合的图案是一种图案,问能涂出多少种不同的图案?

分析

不考虑旋转,所有涂色方案如下图:

pic1

可以发现图中共有 16 种涂色方案,但是把经过旋转的 \(\begin{Bmatrix} 1&2&3&4 \end{Bmatrix}\)\(\begin{Bmatrix} 5&6&7&8 \end{Bmatrix}\)\(\begin{Bmatrix} 9&10&11&12 \end{Bmatrix}\)\(\begin{Bmatrix} 13&14 \end{Bmatrix}\) 都算作一种方案,我们发现方案数其实只有 6 种

问题规模较小时,我们固然可以通过枚举所有可能的情况计算得出满足题目条件的情况数目,但如果我们面对了一个 \(20\times 20\),甚至 \(200\times 200\),穷举算法在那时将会达到 \(O(2^{200})\) 的时间复杂度,就连计算机也不能保证在有生之年给我们问题的答案

于是,数学家就开始研究这类问题的共性,试图得出这类问题的通式,然后就有了 Polya 定理

预备知识

若一个一个集合 \(G\) 和二元运算 \(a \bullet b\) ,满足下列条件:

  1. 封闭性:对于 \(\forall a,\;b\in G\),有 \((a \bullet b)\in G\)
  2. 结合律:对于 \(\forall a,\;b,\;c\in G\),有 \((a\bullet b)\bullet c=a\bullet (b\bullet c)\)
  3. 单位元:对于 \(\forall a\in G\), 存在 \(e\in G\),使得 \(a\bullet e=a\)
  4. 逆元:对于 \(\forall a\in G\),存在 \(f\in G\),使得 \(a\bullet f=f\bullet a=e\),且记 \(f=a^{-1}\)

则称集合 \(G\) 是运算法则 \(\bullet\) 下的一个群, \(\bullet\) 通常表示乘法运算,此时则称 \(G\) 是一个乘法群

一个简单的例子:对于 \(\forall a\in Z\),即所有整数组成的集合,在加法原则下满足上面四个条件,其中 1,2 很好解释,单位元则是 0,逆元则是 \(a\) 的对应相反数,这个群便叫做 整数加法群

群按照集合中元素个数分为 无限群有限群Polya定理 主要针对有限群进行分析操作

置换和置换群

简单来说,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码使用了`sklearn.preprocessing`库中的`PolynomialFeatures`类来进行多项式特征转换。下面是对代码的解释: 1. `from sklearn.preprocessing import PolynomialFeatures`: 这行代码导入了`PolynomialFeatures`类,它是Scikit-learn库中用于生成多项式特征的工具类。 2. `poly2=PolynomialFeatures(degree=2)`: 这行代码创建了一个`PolynomialFeatures`对象,并将其赋值给变量`poly2`。通过设置`degree=2`参数,我们指定了要生成的多项式特征的最高次数为2,意味着生成二阶多项式特征。 3. `X_2_train=poly2.fit_transform(X_train)`: 这行代码将训练数据集`X_train`进行多项式特征转换,并将结果赋值给变量`X_2_train`。`fit_transform()`方法会根据指定的多项式次数,在原始特征的基础上生成相应的多项式特征。 4. `X_2_test=poly2.transform(X_test)`: 这行代码将测试数据集`X_test`进行多项式特征转换,并将结果赋值给变量`X_2_test`。与上一行不同的是,这里使用了`transform()`方法来进行多项式特征转换,而不是再次调用`fit_transform()`方法。这是因为在训练数据集上已经进行了拟合操作,所以在测试数据集上只需要进行转换即可。 通过以上代码,我们可以使用`PolyomialFeatures`类将原始的特征数据转换成更高次数的多项式特征,以提供更多的特征组合,从而更好地适应数据的非线性关系。这对于某些机器学习算法(如线性回归)可能会产生更好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值