抽屉原理解释及简单举例

 

解释

 


       桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。” 抽屉原理有时也被称为鸽巢原理。它是组合数学中一个重要的原理。

 

 

应用


 

简单点的:

属相是有12个,那么任意38个人中,至少有几个人属相相同呢?

       这时将属相看成12个抽屉,则一个抽屉中有 38/12,即3余2,余数不考虑,而向上考虑取整数,所以这里是3+1=4个人.

 

 

难一点的:

       在任意的100个自然数中,是否总可以找到一些数(可以是一个数),它们的和能被100整除?说明理由(任意给n个整数, 从中任意取k个(1 ≤ k ≤ n)整数。必存在一个k,使得 这k个整数之和 % n = 0 。)

 

设这一百个数是a1,a2,...,a100,考虑这100个数b1,b2,...,b100,定义如下:
b1=a1
b2=a1+a2
b3=a1+a2+a3
...
b100=a1+a2+a3+...+a99+a100
如果b1...b100里有能被100整除的,则目的已经达到。
反之,如果b1,...,b100里没有被100整除的,考虑这100个数除以100的余数,因为不能余0,也就是说余数只能是1到99里找,则由抽屉定理,b数里一定有两个数模100是同余的。
设b(i)和b(j)是同余的,i 则b(j)-b(i)是100的倍数,即a(i+1)+...a(j)是100的倍数,所以我们最终还是找到了和被100整除的的子集。
如果改成“任意99个自然数...和能被100整除?”,命题就不成立了,比如所有数都是1的情况.

你可能感兴趣的:(算法_acm)