- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12
1
2
4
3
通过旋转可以产生4个置换
1 2 3 4 1 2 3 4
P0= P1=
2 3 4 2 3 4 1
1 2 3 4 1 2 3 4
P2= P3=
3 4 1 2 4 1 2 3
通过对角线和轴翻转可以产生4个置换
1 2 3 4 1 2 3 4
T1= T2=
1 4 3 2 3 2 1 4
1 2 3 4 1 2 3 4T3= T4=
2 1 4 3 4 3 2 1
所以同理:
对于任意N=3,可以得到正N角型的对称群。除N个旋转P0,P1,P2….PN;外,还有N个反射T1,T2,T3,,,,TN;
如果N为偶数,则有N/2个关于对角点的反射和N/2个关于对边中点连线的反射。
如果N为奇数,则有N个关于角点与其对边中点连线的反射。
由这2N个置换形成的群
{P0,P1……PN,T1,T2……TN}
Burnside定理给出一个计数不等价着色数的公式;
Burnside定理详见《组合数学-第四版》P386;
下面举例应用Burnside定理;
以正四边形为例
用3中颜色对其着色
循环因子分解:
以P0为例,循环因子分解为[1]。[2]。[3]。[4]
1-1;2-2;3-3;4-4;
以P2 循环因子分解[1 3]。[2 4]
1-3-1;2-4-2;
D4中的F
循环因子分解
分解个数
保持不变的着色数
P0
[1]。[2]。[3]。[4]
4
3^4
P1
[1 2 3 4]
1
3^1
P2
[1 3]。[2 4]
2
3^2
P3
[1 4 3 2]
1
3^1
T1
[1]。[2 4]。[3]
3
3^3
T2
[1 3]。[2]。[4]
3
3^3
T3
[1 2]。[3 4]
2
3^2
T4
[1 4]。[2 3]
2
3^2
着色数=(3^4+3^1+3^2+3^1+3^3+3^3+3^2+3^2)/(2*4)=21
问题主要在解决循环因子分解的个数的问题上。
代码:
#include iostream
#include cmath
#include iomanip
#includestdio.h
using namespace std;
int f[100];
int N;
int howManyCircles()
{
int used[100];
for(int i=0; i100; i++)
used[i] = 0;
int count = 0;
for(int i=1; i=N; i++)
{
if(used[i] == 0)
{
++count;
int head = i;
int k = i;
while(1){
used[k] = 1;
if(f[k] == head)
break;
k = f[k];
}
}
}
return count;
}
long long int num(int x)
{
long long int temp = 1;
for(long long int i=0; ix; i++)
{
temp = temp * 3;
}
return temp;
}
void fun()
{
long long int total = 0;
int divide;
divide=2*N;
for(int k=0; kN; k++)
{
for(int i=1; i=N; i++)
{
f[i] = (i+k-1+N) % N + 1;
原创力文档


文档评论(0)