`
yzmduncan
  • 浏览: 330296 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

组合数学——polya定理及其应用

阅读更多

    Polya定理

    设有n个对象,G是这n个对象上的置换群,用m种颜色涂染这n个对象,每个对象涂染一种颜色,问有多少种染色方案?一种染色方案在群G的作用下变为另一种方案,则这两种方案当作是一种方案。

    方案数为



 

POJ2409

   题意:一家项链公司生产手镯。n颗珠子形成一个环,用m种颜色给n颗珠子染色,就得到了各种各样的手镯。但是,经过旋转和翻转使之吻合的算同一种方案。

例如,当用2种颜色对5颗珠子进行染色的方案数为8,如下图所示。



 

解:显然,对于这n个对象,有n种旋转和n种翻转。

1. 对于旋转,有c(gi) = gcd(n,i),i为转动几颗珠子。

2. 对于翻转,当n为奇数时,c(gi) = n/2+1;

                   当n为偶数时,有n/2个的循环节数为n/2+1,有n/2个的循环节数为n/2。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;

typedef __int64 int64;

int gcd(int a, int b)
{
    return b==0?a:gcd(b,a%b);
}

//用m种颜色涂均匀分布在圆环上的n颗珠子的方案数
int64 polya_circle(double m, int n)
{
    int64 result = 0;
    //旋转
    for(int i = 1; i <= n; i++)
        result += pow(m,gcd(n,i));
    //翻转
    if(n%2)
        result += n*pow(m,n/2+1);
    else
        result += (pow(m,n/2)+pow(m,n/2+1))*n/2;
    return result/n/2;
}


int main()
{
    int c,s;
    while(true)
    {
        scanf("%d %d",&c,&s);
        if(c==0&&s==0)
            break;
        printf("%I64d\n",polya_circle(c,s));
    }
    return 0;
}

 

 

 

  • 大小: 3.9 KB
  • 大小: 3.3 KB
2
0
分享到:
评论

相关推荐

    Polya定理及其应用

    c++技术 Polya定理及其应用

    Polya定理Polya定理Polya定理

    Polya定理的应用范围非常广泛,包括组合数学、群论、图论等领域。在这些领域中,Polya定理可以帮助我们解决各种组合数学问题,提高解决问题的效率和准确性。 Polya定理是一个非常重要的工具,在组合数学中有很大的...

    polya定理模板

    Polya定理,又称为Polya枚举定理或Polya计数理论,是由匈牙利数学家George Polya在1937年提出的一种在组合数学中用于计数问题的强大工具。它主要应用于处理在某种对称性作用下不同元素的分类与计数问题,如在给定...

    Polya定理——北大信息学院《ACM中的数学问题》

    ### Polya定理详解及其应用 #### 一、Polya定理概述 Polya定理是组合数学领域中的一项重要工具,它提供了一种解决带有对称性约束的计数问题的方法。Polya定理的核心思想是通过分析置换群的作用来简化复杂的计数...

    polya定理应用比较复杂的一题.doc

    Polya定理,全称为Polya计数定理,是组合数学中的一种重要工具,用于统计有限群作用下的不变量的数量。在解决实际问题时,尤其是涉及到颜色着色或者排列组合的问题时,Polya定理能帮助我们系统地计算出各种可能的...

    polya定理.doc

    Polya定理,又称为波利亚定理,是组合数学中的一个重要理论,它在计数问题上有着广泛的应用,尤其是在解决关于对称性的问题时。这个定理主要用来计算有限群作用下的等价类数量,具体到这个文档中,我们讨论的是如何...

    Burnside引理和Polya定理PPT教学课件.pptx

    该课件主要介绍了群论和置换群的基本概念和性质,以及 Burnside 引理和 Polya 定理的应用。 知识点.summary: 1. 群论基础: * 群的定义:一个集合 G 和一个运算‘﹫’,满足封闭性、结合律、存在单位元和逆元的...

    组合polya定理

    关于组合数学很详细的ppt,描述了polya定理,清晰易懂

    组合数学及其算法

    1.1 组合数学研究的对象 1.2 组合问题典型实例 1.2.1 分派问题 1. 2.2 染色问题 1.2.3 幻方问题 1.2.4 36军官问题 1.2.5 中国邮路问题 习 题 第二章 排列与组合 2.1 两个基本计数原理 2.2 无...

    组合数学引论课件

    综上所述,《组合数学引论课件》覆盖了从基本概念到高级技术的组合数学核心内容,对于深入理解和应用组合数学至关重要。通过学习这些课件,学生可以掌握如何利用组合方法解决各种计数问题,提升分析和解决问题的能力...

    组合数学(原书第4版)(美)Richard A. Brualdi

    在组合数学中,二项式系数是一个经常出现的概念,书中第五章专门讨论了Pascal公式和二项式定理,并探讨了二项式系数的单峰性质、多项式定理和Newton二项式定理等。这些内容为解决更为复杂的组合问题奠定了基础。 容...

    Polya定理以及知识点详解

    Pólya原理是组合数学中,用来计算全部互异的组合状态的个数的一个十分高效、简便的工具。下面,我就向大家介绍一下什么是Pólya原理以及它的应用。请先看下面这道例题: 【例题1】 对2*2的方阵用黑白两种颜色涂色...

    组合数学 ACM 和,POJ里用到组合数学的题目

    组合数学是 ACM/ICPC 竞赛中一个非常重要的领域,它的应用非常广泛,涵盖了排列、组合、生成函数、Burnside 引理、Polya 定理等多个方面。在本文中,我们将对组合数学的基本概念、公式、生成算法进行详细的介绍。 ...

    第五章_Polya定理1

    《第五章_Polya定理1》主要涉及的是抽象代数中的置换群和Pólya计数定理,这是在解决计数问题时非常有用的工具。置换群是数学中的一个核心概念,它由一个集合上的所有双射组成,并且通过映射的合成形成一个群结构。...

    组合数学(第4版) 卢开澄 卢华明

    第4章讨论了Burnside引理和Polya定理,这两个定理是群论在组合数学中的应用,广泛用于求解着色问题、计数问题等。 第5章介绍了区组设计,这是研究将实验安排在不同条件下的一种组合设计方法,它在统计学实验设计、...

    组合数学答案(很全面 很详细)

    组合数学是数学的一个重要分支,主要研究有限集合中元素的不同组合方式和计数问题。它在计算机科学、统计学、...通过这些解答,可以系统地复习和巩固组合数学的基础知识,为更高级的数学学习和实际应用打下坚实基础。

    组合数学习题答案

    组合数学是离散数学的一个重要分支,主要研究有限集合中元素的不同组合方式。在这个主题下,我们关注的是从一个集合中选择元素的各种方法,而不仅仅是排列。姜建国版的西电组合数学讲义是一个深入探讨这个领域的重要...

    ACM之组合数学在程序设计中的应用

    本资源集合旨在帮助理解并掌握组合数学在程序设计中的应用。 一、组合计数 组合数学的核心之一是计数问题,如“从n个不同元素中取k个元素的不同组合数有多少种”。这个问题可以用组合公式C(n, k)或n选k来表示,...

    中科大 组合数学 期末考试 2020秋季学期

    Polya计数定理提供了一种计算在某种对称操作下不变的组合对象的数量的方法。题目中提到的正四面体着色问题是Polya计数定理的一个典型应用实例。具体来说,对于给定的对称群G和染色方案,可以通过计算固定点的平均数...

Global site tag (gtag.js) - Google Analytics