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

组合数学——错排问题及其应用

阅读更多

    n个有序的元素应有n!个不同的排列,若一个排列使得所有的元素都不在原来位置上,则称这个排列为错排。

错排公式推导

    设n个数1,2,3...,n错排数目为Dn,对于其中任意一个数i:

    (1) 数i分别与其他的n-1个数交换位置,其余n-2个数进行错排,共得到(n-1)Dn-2个错排;

    (2) 对除数i以外的n-1个数进行错排,然后i与其中每个数互换,得到(n-1)Dn-1个错排。

    因此,得到递推关系:Dn=(n-1)(Dn-1 + Dn-2),D1=0,D2=1。它的通解为Dn=n!-C(n,1)(n-1)!+C(n,2)(n-2)! - ... +(-)C(n,n)1!。

 

HDU2048

题意:给出n个元素,求错排的概率。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef __int64 int64;
const int N = 21;
int64 d[N];
int64 f[N];

int main()
{
    int i;
    int c,n;
    d[1] = 0;
    d[2] = 1;
    f[1] = 1;
    f[2] = 2;
    for(i = 3; i < N; i++)
    {
        d[i] = (i-1)*(d[i-1] + d[i-2]);
        f[i] = f[i-1]*i;
    }
    scanf("%d",&c);
    while(c--)
    {
        scanf("%d",&n);
        double p = 1.0*d[n]/f[n]*100.0;
        printf("%.2lf%%\n",p);
    }
    return 0;
}

 

 

 

HDU2068

题意:给出n个元素,求有>=一半的元素在自己的位置的组合数。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef __int64 int64;
const int N = 15;
int64 d[N];

//c(m,n),m>=n
int64 composite(int64 m, int64 n)
{
    int64 i,j;
    if(n==0)
        return 1;
    int64 result = 1;
    for(i=m,j=1; j <= n; i--,j++)
        result = result*i/j;
    return result;
}

int main()
{
    int i;
    d[1] = 0;
    d[2] = 1;
    for(i = 3; i < N; i++)
        d[i] = (i-1)*(d[i-1]+d[i-2]);
    int n;
    while(true)
    {
        scanf("%d",&n);
        if(n==0)
            break;
        int k = n/2;
        int64 result = 0;
        for(i = 2; i <= k; i++)
            result += composite(n,i)*d[i];
        printf("%I64d\n",result+1);
    }
    return 0;
}

 

 

 

 

1
0
分享到:
评论

相关推荐

    分形几何——数学基础及其应用

    ### 分形几何——数学基础及其应用 #### 一、引言 分形几何是一门研究不规则几何形状的数学分支,这些形状具有自相似性、分数维数等特性。本书《分形几何——数学基础及其应用》(第二版)由英国数学家Kenneth ...

    组合数学——卢开澄组合数学——卢开澄

    组合数学是数学的一个重要分支,...总之,卢开澄所著的《组合数学》一书是组合数学领域的宝贵资料,它不仅为学生和研究人员提供理论基础,而且通过实际应用案例,展示了组合数学在解决复杂问题时的实用价值和美妙之处。

    数学建模.zip北邮——计算机——数学建模——专业选修

    北邮——计算机——数学建模——专业选修 北邮——计算机——数学建模——专业选修 北邮——计算机——数学建模——专业选修 北邮——计算机——数学建模——专业选修 北邮——计算机——数学建模——专业选修 北邮...

    组合数学——母函数与递推_朱全民.ppt

    1. Hanoi问题:这是个组合数学中的著名问题。N个圆盘依其半径大小,从下而上套在A柱上,如下图示。每次只允许取一个移到柱B或C上,而且不允许大盘放在小盘上方。若要求把柱A上的n个盘移到C柱上请设计一种方法来,并...

    大学数学——组合数学

    6. **卡特兰数**:在组合数学中,卡特兰数是一类特定的整数序列,广泛应用于各种问题,如括号匹配、分割问题、格子路径等。 7. **递推关系**:组合数经常可以用递推关系来表示,例如C(n, k) = C(n-1, k-1) + C(n-1,...

    组合理论及其应用李凡长 课后习题答案 共42页,完整版

    总之,这份完整的《组合理论及其应用李凡长》课后习题答案提供了丰富的学习材料,不仅可以帮助巩固理论知识,还能锻炼解决实际问题的能力。通过深入学习和实践,读者能够掌握组合数学的精髓,为未来在相关领域的研究...

    《组合数学及其在计算机中的应用》

    算法设计需要估算计算量和存储量。组合数学研究计数和枚举的方法和理论。

    五年级数学下册 第四单元啤酒生产中的数学——比例 比例的应用教案 青岛版 教案.doc

    《五年级数学下册》第四单元“啤酒生产中的数学——比例 比例的应用”教案主要探讨了如何在实际问题中运用比例的知识。本单元旨在帮助学生深化对正比例和反比例概念的理解,并能灵活应用这些知识解决相关应用题。 ...

    模糊数学——模糊矩阵运算PPT学习教案.pptx

    模糊数学——模糊矩阵运算PPT学习教案.pptx

    离散数学——求集合soursecode

    离散数学——求集合;soursecode离散数学——求集合;soursecode离散数学——求集合;soursecode离散数学——求集合;soursecode离散数学——求集合;soursecode离散数学——求集合;soursecode离散数学——求集合;sourse...

    六年级下册数学人教版周测培优卷7 数学广角——鸽巢问题的应用能力检测卷(含答案).pdf

    在数学广角——鸽巢问题的应用能力检测卷中,涉及到多个具体的数学问题,通过实际应用情境来检验学生对鸽巢原理的理解和运用能力。 首先,第一部分是填空题,需要学生直接填写答案。这些问题包括但不限于以下几个...

    电子科技大学 - 组合数学 - 卢光辉\杨国武 -2017期末试卷

    这个问题可以通过组合数学中的排列组合原理来解决。我们将7个人中的夫妇看作一个整体,然后在剩下的5个独立个体中进行排列,最后考虑夫妇内部的排列方式。类似的,若7个人中有3对夫妇,从中取出6个人的夫妇均不相邻...

    编程爱好者的组合数学训练——材料

    以下将详细介绍组合数学的一些核心知识点及其在编程中的应用。 1. **组合与排列**:组合是不考虑顺序的选择,例如从n个不同元素中选取k个,表示为C(n, k)或n选k。排列则是考虑顺序的选择,从n个不同元素中选取k个并...

    组合数学中文第五版

    7. 应用问题:组合数学广泛应用于计算机科学、运筹学、统计学、生物学、物理学等领域中的各种实际问题,如编码理论、网络设计、信息检索等。 《组合数学中文第五版》教材在上述各个方面均提供了详尽的讲解,并通过...

    组合数学及其算法

    逻辑思维能力在理解和应用组合数学及其算法时至关重要。它涉及分析问题,抽象关键要素,并构建有效的解决方案。在IT领域,逻辑思维能力有助于设计高效的数据结构,比如哈希表、堆和图数据结构,这些都与组合数学密切...

    组合数学反演知识

    最后,文档中提及的应用例子——错排问题,不仅是一个经典的组合问题,也是检验反演方法有效性的一个典型例证。错排问题的求解涉及到容斥原理,该原理可以用于计算多个事件至少发生一次的概率问题。通过容斥原理,...

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

    第六章详细讨论了容斥原理及其应用,包括错位排列、禁止位置问题等。此外,还介绍了莫比乌斯反演原理作为容斥原理的推广。 递推关系和生成函数是组合数学中解决序列问题的重要工具。第七章介绍了线性齐次递推关系、...

    具体数学——计算机科学基础

    通过阅读《具体数学——计算机科学基础》,读者可以建立起数学与计算机科学之间的桥梁,提升解决问题的能力。这本书不仅适合大学课堂使用,也适合作为自学资料,帮助计算机专业人士深化对数学在计算机科学中应用的...

    离散数学及其应用_pdf_Epp离散数学_离散数学_

    总的来说,《离散数学及其应用》不仅提供了理论基础,还通过实例和练习帮助读者将理论应用于实际问题。对于希望在IT领域深入学习和发展的学生来说,这本书是不可或缺的资源。它能够帮助你建立扎实的数学思维,提升...

Global site tag (gtag.js) - Google Analytics