鸽巢原理分析、实用技巧、部分定理证明以及组合数学学习心路历程

  1. 鸽巢原理

天上有十个鸽子,这十个鸽子要飞到九个鸽巢里,无论怎样飞,我们会发现至少会有一   个鸽巢里面放两个鸽子,这一现象就是我们所说的“鸽巢原理”。鸽巢定理由狄里克利于1834 年提出,当时命名为 Schubfachprinzip (drawer principle)。

鸽巢原理的一般含义为:“如果每个鸽巢代表一个集合,每一个鸽子就可以代表一个元素,假如有 n 或多于n 个元素放到n-1 个集合中去,其中必定至少有一个集合里有两个元素。” 这是组合数学中一个重要的原理。

第一鸽巢原理:

    1. 把多于 n 个的物体放到 n-1 个鸽巢里,则至少有一个鸽巢里的东西不少于两件。
    2. 把多余 mn+1(n!=0)个的物体放到 n 个鸽巢里,则至少有一个鸽巢里有不少于(m+1)的物体。
    3. 把无穷多件物体放入 n 个鸽巢,则至少有一个鸽巢里有无穷个物体。第二鸽巢原理:

把(mn-1)个物体放入 n 个鸽巢里,其中必有一个鸽巢中至多有(m-1)个物体。

 

 

  1. 鸽巢原理应用技巧

运用鸽巢原理的核心是分析清楚问题中,哪个是鸽子,哪个是鸽巢,而鸽巢往往是问题中数量较少的那一方。先来看一个有意思的问题,众所周知世界上没有两个人的手指纹是一样的,因此警方在追查犯罪问题时很重视手指纹,希望通过手指纹来找到嫌疑人。可是大家或许不知道:在 12 亿中国人当中,最少有两个人的头发是一样的多。道理很简单,人的头发数目是不会超过 12 亿这么大的数目字!假定人最多有 N 根头发。现在我们想像有编上号码 1,2,3,4,…一直到 N 的房子。 谁有多少头发,谁就进入那编号和他的头发数相同的房子去。现在假定每间房巳进入一个人,那么还剩下“九亿减 N”个人,这数目不会等于零, 我们现在随便挑一个放进一间和他头发数相同的房子,他就会在里面遇到和他有相同头发数目的人了。

制造鸽巢是运用鸽巢原理的关键,很多时候可以帮助我们更方便地去求解一些问题。例   如现在我们从 2 至 30 之间的 15 个偶数中,任取 9 个数,则其中一定有两个数之和是 34。

这一点是如何得知的呢?我们可以用上诉 15 个偶数制造 8 个鸽巢,要求制造的鸽巢中有凡是两个数的,都具有一个共同的特点:这两个数的和是 34。现从题目中的 15 个偶数中任取9 个数,由鸽巢原理(因为鸽巢只有 8 个),必有两个数可以在同一个鸽巢中(符合上述特点).由制造的鸽巢的特点,这两个数的和是 34。

对于整除问题,可以把所有整数按照除以某个自然数 m 的余数分为 m 类,叫做 m 的剩余类或同余类,用[0],[1],[2],…,[m-1]表示。每一个类含有无穷多个数,例如[1]中含有1,m+1,2m+1,3m+1,….在研究与整除有关的问题时,常用剩余类作为鸽巢。根据鸽巢原理,可以证明:任意 n+1 个自然数中,总有两个自然数的差是 n 的倍数。可以证明这样一个例子,我们任取 8 个自然数,必有两个数的差是 7 的倍数。在与整除有关的问题中有这样的性质,如果两个整数 a、b,它们除以自然数 m 的余数相同,那么它们的差 a-b 是 m 的倍数.根据这个性质,本题只需证明这 8 个自然数中有 2 个自然数,它们除以 7 的余数相同. 我们可以把所有自然数按被 7 除所得的 7 种不同的余数 0、1、2、3、4、5、6 分成七类.也就是 7 个鸽巢.任取 8 个自然数,根据鸽巢原理,必有两个数在同一个鸽巢中,也就是它们

 

除以 7 的余数相同,因此这两个数的差一定是 7 的倍数。

鸽巢原理的内容不算繁杂,在数学问题中有重要的作用,同时理解起来也没有太大困难,   可以解决很多跟存在性有关的问题。

 

  1. 相关应用及拓展

中国剩余定理(Chines Remainder Theorem):m 和 n 是两个互质的正整数,对于任意非负整数 a 与 b(a<m, b<n). 则必然存在正整数 x 使得联立的同余方程组有公解:

  • x = pm +a
  • x = qn + b
  • (p,q 为非负整数)

关于这个定理可以用反证法证明,设存在两个不等的数 0≤C1,C2<nm,使 C1,C2 关于 N,M 均同余,那么我们不妨设 C1<C2,设 k=C2-C1,那么显然,C2-C1 为 N,M 的整数倍,即 k 为 N,M 的公倍数,则有 kmin=LCM[N,M];因为 N,M 互质,由 LCM 求值公式知,那么 k=LCM[N,M]=NM; 那么 C2=C1+K=C1+NM>=N*M,与假设相悖,得证。

拉姆齐(Ramsey)定理可以视为鸽巢原理相关问题的一个推广,组合数学中拉姆齐定理有着一个广泛流传例子,即 6 个人中,要么存在三个人彼此互相认识,要么存在三个人彼此都不认识;可以设六个人为六个点,认识或不认识用两种不同颜色的线段代表,因为两人只有一种关系,所以任意一点一定会引出连向其他 5 点的五个线段,根据鸽巢定理,有 2 种关系, 有 2*2+1=5 条关系线,即 k=2,那么必定有一种关系拥有 2k+1=3 条关系线,得证。

心路历程

刚刚得知要学习组合数学这门课的时候,感觉还是很忐忑,毕竟很多学长都会 跟你说组合数学是多么的难。上学期,在老师的教导下,我们学习了排列和组合, 二项式系数,调和数,Fibonacci 数与 Catalan 数,Stirling 数,正整数的分拆,Bernoulli 数等模块的内容。

之前也有学习过排列组合的知识,因此我曾以为组合数学就是一门教我们如何计数 的学科。随着学习的深入,才慢慢感觉到所谓的“计数”问题实际上大有学问。在计数 过程中,如何才能做到不重不漏,事实上并不是一件简单的事情。这让组合数学的学习 变成了一件有趣的事情,很好地开阔了自己的眼界,锻炼了自己的思维能力。 组合数学是研究离散结构的存在,计数,分析,和优化等问题的一门学科。

组合数学研究的问题事实上十分宽泛,绝不仅仅是在研究如何计数的问题,组合存在性、组合 设计也都是组合数学的重要组成部分。组合数学的研究的内容有组合计数、组合设计、 组合矩阵、组合优化(最佳组合)等。 随着学习的不断深入,我们往往为组合数学中对一些问题巧妙的思考所惊叹。我越 发感受到,组合数学是非常需要技巧的,我们掌握好的方法是很重要的。组合数学不得 不提的一点是:很多问题都可以从多个方面理解,从而被联系在一起。

随着计算机的日益发展,组合数学已经在各个领域有了越来越广泛的应 用。计算机科学的核心内容是使用算法处理离散数据,因此,组合数学的产生恰好满足 了编写计算机程序的需求。在美国有一家用组合数学命名的公司,他们用组合数学的方 法来提高企业管理的效益,这家公司办得非常成功。组合数学的应用性之强毋庸置疑, 我也逐渐感觉到,很多时候阻挡自己更进一步的并非编程能力,而是数学的思维能力。 组合数学对于学习计算机相关专业的我们来说,好处是显而易见的。今后的日子里 仍要刻苦专研,提高分析问题和解决问题的能力,更好地把握组合数学的知识、理论、 思想和方法。培养专业的数学思维,能帮助我们在今后的工作学习中掌握先机,为国家相关行业做出自己的贡献。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值