ACM中的【数学知识】之【组合数学】(一) Polya定理的简单理解 POJ 1286

来源:互联网 发布:顶点网络微博平台代理 编辑:程序博客网 时间:2024/06/06 10:04

因为数学渣,Polya定理不是很清楚,但其实际操作大概如下。

解释下上图。

N个位置,K种颜色放置。

x1,x2,x3,x4,……,xn

(x1,x2,x3……xn)∈{1 2 3 4 …… K}

放置总数为上图

|G| 是【所有的(被定义的)置换(也就是变化的方式)】的个数

——被定义就是说,某变化为M,任意情况A经过变化M变为B,A和B算作同一种情况。

k就是K

c(f) 是【某种置换的循环节】:

——这是什么意思的

比如说

3种颜色(K==3)

1 2 3 4 四个位置

我定义【旋转变化】和【不变】是同一种情况(注意,不变也算是一种【变化】,因为不变之后等效于原来)

【不变】就是 【1 to 1】【2 to 2】【3 to 3】【4 to 4】有四个【】,所以c(f)算作4

【旋转】分为几种分别是

【转一次】——【1 to 2】【2 to 3】【3 to 4】【4 to 1】这个【】可以合并为【 1 to 2 to 3 to 4 to 1】 所以 从c(f)=1;

【转两次】——【1 to 3】【2 to 4】【3 to 1】【4 to 2】这个【】可以合并为【 1 to 3 to 1】【2 to 4 to 2】 所以 从c(f)=2;

【转三次】——【1 to 4】【2 to 1】【3 to 2】【4 to 3】这个【】可以合并为【 1 to 4 to 3 to 2 to 1】 所以 从c(f)=1;

PS:如果把【不变】不单独算,而是算作【转四次】的话

【转四次】——【1 to 1】【2 to 2】【3 to 3】【4 to 4】这个【】不能合并  所以 从c(f)=4;

所以总可能数

就是

K^(1+2+1+4)/4==24

POJ 1286

除去上面的【旋转】和【不变】

再多一个【翻转】操作

对于n个数

n 为奇数

共 n 种翻转,每种 的 c(f)==(n+1)/2

n为偶数

n/2 种 c(f)==n/2

n/2 种 c(f)==n/2+1

具体代码可自行度娘

0 0
原创粉丝点击