第三章鸽巢原理部分习题答案

我看的是那本老外写的黑黑的书《组合数学第五版》。老外写书的时候答案好像没有怎么写,我作为帅B就帮大家写写吧(郑重声明:我不是卖书的就是给大家看看长啥样^_-)

题目
(题号与书上的题号对应,答案在后面)

 2.证明从1-200中取100个数且选取的这些数中有一个小于16,那么存在两个选取的整数,使得他们中的一个能被另一个整除。

 4.如果集合{1,2,…2n}中选择n+1个整数总存在两个整数他们之间(没有“最多”二字)相差1。

 5.如果从集合{1,2,…3n}中选择n+1个数那么么总存在两个数它们之间最多差2。

 7.对任意给定的52个数,要么二者的和能被100整除,要么二者的差能被100整除

 8.利用鸽巢原理证明,有理数 m n \frac{m}{n} nm展开的十进制小数是循环的。例如

34478 99900 = 0.345 , 125 , 125 , 125 , 125 , 12..... \frac{34478}{99900}=0.345,125,125,125,125,12..... 9990034478=0.345,125,125,125,125,12.....

 9.一个房间有10个人,他们当中没有人超过60岁(年龄只能以整数给出)但又至少1岁.
  证明:
    (1)总能够找出两组人(两组人中不含相同的人),各组人的年龄和是相同的
    (2)题目中10不能换成更小的数

 10一个孩子每天看10个小时的电视,总共看7周,但是因为其父母的控制,任何一周看电视时间从不超过11个小时。
 证明:存在连续若干天,在此期间这个孩子恰好看了20个小时电视(假设看电视时间为整数)
 11.一个学生有37天准备考试。根据以往的经验,他知道他需要的学习时间不超过60小时,他还希望每天至少学习一小时。证明:无论她如何安排他的学习时间(每天的时间是一个整数),都存在连续的若干天,在此期间她学习了13个小时
 13.设S是平面上6各点的集合,其中没有三点共线。给出S的甸所确定的15条线段着色,将他们或者着成红色,或者着成蓝色证明:至少存在两个 三角形他们是红色的,或者是蓝色的,或者是红色和蓝色的(抱歉我发现我证错了,先空一下)
 14.一个袋子里面装了100个苹果、100个香蕉、100个橘子、100个梨。如果每分钟我们从中拿出一个水果,那木哦多久后对于一种水果我们拿出了12个
 15.对于任意 n+1整数 a 1 , a 2 . . . . . a n + 1 a_{1},a_{2}.....a_{n+1} a1,a2.....an+1存在两个正整数 a i a_{i} ai a j a_{j} aj使得 a i − a j a_{i}-a{j} aiaj被100整除。
 16.证明:在一群n>1个人中,存在两个人他们在这群人中有相同的熟人(假设自己不是自己的熟人)
 17.有一个100人的聚会,每个人都有偶数(可以是0)个熟人。证明:在这次聚会上有3个人,其熟人数量相等。
 18.证明:在边长等于2的正方形中任选5个点,它们当中存在2个点镇两个点的距离最多是 2 \sqrt{2} 2
 19.(a)证明:在边长为1的等边三角形中任意选择5个点存在两个点,期间距至多为 1 2 \frac{1}{2} 21
  (b)证明:在边长为1的等边三角形中任意选择10个点存在两个点,期间距至多为 1 3 \frac{1}{3} 31
  (c )证明:在边长为1的等边三角形中任意选择m个点存在两个点,期间距至多为 1 n \frac{1}{n} n1
 26.设军乐团的mn个人一下述方式站成一m行n列的方队;在每一行中的每一个人都比他或她左边的人高。假设指挥官将每一列的人按身高从前至后增加的顺序排列。证明:各行仍是按照身高从左到右增加的顺序排列。
 28.在一次舞会上有10位男士和20位女士。对于1,2,…,100中的每个i,第i位男士选择 a i a_{i} ai位女士作为他的潜在舞伴(这 a i a_{i} ai女士组成他的“舞伴清单”),这样,对任意给定的一组20位男士与20位女士配成舞伴对,且每位男士索赔的舞伴都在他的舞伴清单中。保证和一点的最小和 ∑ i = 1 100 a i \sum_{i=1}^{100}a_{i} i=1100ai是多少.

证明如下

 4.两个数相差1,如果用鸽巢原理的话,他么可以说是两个数有什么相同的性质,在同一个鸽笼里,我们写成表达式就是

a − b = 1 a-b=1 ab=1
b = a − 1 b=a-1 b=a1

于是我们可以利用这个“ = = =”号来进行构建每一个鸽巢的性质,
设取出来的数为 a 1 , a 2 . . . . . . a n + 1 a_{1},a_{2}......a_{n+1} a1,a2......an+1我们构造元素 b i = a i − 1 b_{i}=a_{i}-1 bi=ai1这样就得到了2n+2个数,这些数的范围 b i b_{i} bi最小为0, a i a_{i} ai最大为2n,所以集合 A = [ 0 , 1 , 2....2 n ] A=[0,1,2....2n] A=[0,1,2....2n]中共有2n+1个数,我么构造了2n+2个数归入集合A中必有两个数在一个元素中,于是必有 a i = b j + 1 a_{i}=b_{j}+1 ai=bj+1存在。

 5.这个题应该注意对题目的理解,他的目的是证明一定存在最多差二的情况,而不是所有数的差最大为2,那么证明过程和上面类似,我们翻译一下最多相差2,就是存在相差1相差2的,进行下列构造

b i = a i − 1 b_{i}=a_{i}-1 bi=ai1
c i = a i − 2 c_{i}=a_{i}-2 ci=ai2

可以知道 a i , b i , c i a_{i},b_{i},c_{i} ai,bi,ci的取值范围为 [ − 1 , 3 n ] [-1,3n] [1,3n]共3n+2个数,而我们构造的数有3n+3个,所以必有两个相等。

 7.两个数能被100整除说明这两个数又到同一个“鸽笼”里面去了,对于除法,我们不妨对所有数取 m o d 100 mod100 mod100,这样的话所有数都可以分为100类,两个数相加可以被 100 100 100整除我们可以知道他们的模应该是这样的

x = a m o d ( 100 ) x=amod(100) x=amod(100)
y = b m o d ( 100 ) y=bmod(100) y=bmod(100)

两个数相加表示为

x + y = = 100 ∣ ∣ x + y = = 0 x+y==100||x+y==0 x+y==100x+y==0

两个数相减 表示为

x = = y x==y x==y

现在将可以完成上述配对的元素组成一个数对,于是我么可以构造一个集合A={ ( a i 1 , a i 2 ) (a_{i1},a_{i2}) (ai1,ai2)|,a_{i1}+a_{i2}==100}+{(0,0)}
直观的写就是{(0,0),(1,99),(2,98)…(50,50)},里面的每个数都是所有数mod(100)后的结果,对于每个实数对中例如(2,98),如果两个元素共同出自这里,要么他们相同即都是2或98,这时二者相减所得可被100整除,要么是2和98,这时二者相加也可被00整除,这样的数对共有51个,取出52个数后,必有两个在一个元素中,命题得证。

 8.首先有循环一定是除法过程中部分的被除数(我也不知道叫啥)有了循环除法就是像现在写的那样,我们假设除数为n,被除数为m, b i b_{i} bi为中间被除数, a i a_{i} ai为我们常说的商,那么

{ m = a 1 n + b 1 , b 1 = m m o d ( n ) b 1 = a 2 n + b 2 , b 2 = b 1 m o d ( n ) b 2 = a 3 n + b 3 , b 3 = b 2 m o d ( n ) . . . b n = a n n + b n + 1 , b n + 1 = b n m o d ( n ) . . . \left\{\begin{matrix} m=a_{1}n+b_{1},b_{1}=m mod(n)\\ b_{1}=a_{2}n+b_{2},b_{2}=b_{1}mod(n)\\ b_{2}=a_{3}n+b_{3},b_{3}=b_{2}mod(n)\\ .\\ .\\ .\\ b_{n}=a_{n}n+b_{n+1}, b_{n+1}=b_{n}mod(n)\\ .\\ .\\ .\\ \end{matrix}\right. m=a1n+b1b1=mmod(n)b1=a2n+b2b2=b1mod(n)b2=a3n+b3b3=b2mod(n)...bn=ann+bn+1,bn+1=bnmod(n)...

因为是无限循环所以必然能使得 b n b_{n} bn出现,由于由于 b i b_{i} bi为对n取m的结果,所以 b i ∈ [ 0 , n − 1 ] b_{i}\in[0,n-1] bi[0,n1],而 b i b_{i} bi多余n个,所以 b i b_{i} bi最终会循环,这也导致了 a i a_{i} ai循环,于是商就循环了

 9.上来的时候我们理解错题意了,所以我先为各位纠正一下题意,他的意思就是选两个相交后是空集但是他们的并集并不一定是全集(我就在这里理解错了) 的集合
 (1) 10 10 10个数哦我们可以选择的非空集合有 2 10 − 1 = 1023 2^{10}-1=1023 2101=1023个但是每一个集合的年龄和的范围为 [ 10 , 600 ] [10,600] [10,600]共590个元素,所以必有两个集合的值相同,这两个集合中的元素可能相同,不符合题意,但完全没有关系,我们可以将两个集合中的元素去重,去重后两个集合人年龄和仍然相同,也许你会问去重后两个集合中有没有一个为空集,答案是不会的,因为如果得到空集的话,非空集的年龄和就为零,但是年龄最小值为1,所以不会有空集。
 (2)如果 n < 10 n<10 n<10那么集合个数是 2 n − 1 ≤ n ∗ ( 60 − 1 ) 2^n-1\leq{n*(60-1)} 2n1n(601),所以我们无法使用鸽巢原理证明有两种集合的元素值相等。(不等式我没有证明,但是在n==9的时候是成立的,应该可以用数学归纳法吧!

 10.7周共49天,一周不能超过11小时,则7周不能超过77小时,如果将看电视时间视为一个序列 a i a_{i} ai,那么题中指出的就是要寻找连续和为20的情况,设:

s i = ∑ k = 1 i a k s_{i}=\sum_{k=1}^{i}a_{k} si=k=1iak

那么从第i天到第j天的和为 s j − s i − 1 s_{j}-s_{i-1} sjsi1,换句话说我们要找到两个数 s i s_{i} si s j s_{j} sj使得

s i = s j + 20 s_{i}=s_{j}+20 si=sj+20

于是我们构造元素 s i + 20 s_{i}+20 si+20,那么元素 s i , s i + 20 s_{i},s_{i}+20 si,si+20组成的集合取值范围为 [ 49 , 77 + 20 ] [49,77+20] [49,77+20],共有48个值,而我们有 2 × 49 = 98 2\times49=98 2×49=98个元素所以必有两个i,j使得 s i = s j + 20 s_{i}=s_{j}+20 si=sj+20

 11.我就不写了…你可以看看第10题(* ---- *)

 13.(待更新)

 14.这个也太简单了吧,你可能心里都知道答案,也许不知道怎么用鸽巢原理,我来提示一下, X 苹 果 + X 香 蕉 + X 橘 子 + X 梨 = ( 4 × ( a n s − 1 ) ) + 1 X_{苹果}+X_{香蕉}+X_{橘子}+X_{梨}=(4\times(ans-1))+1 X+X+X+X=(4×(ans1))+1,其中ans是我们要拿的元素个数, X 水 果 X_{水果} X是个数,所以答案是45;

 15.这个问题也是十分的简单,依旧是先将等式化简一下

a i − a j ≡ 0 m o d ( n ) a_{i}-a{j}\equiv0mod(n) aiaj0mod(n)
a i ≡ a j m o d ( n ) a_{i}\equiv a_{j}mod (n) aiajmod(n)

接下来的鸽巢原理就好做了我们设 b i = a i m o d ( n ) b_{i}=a_{i}mod(n) bi=aimod(n)于是 b i ∈ [ 0 , n − 1 ] b_{i}\in[0,n-1] bi[0,n1]一共有n+1个 b i b_{i} bi但是取值有n个,所以必有 b i ≡ b i m o d ( n ) b_{i}\equiv b_{i}mod(n) bibimod(n),命题得证
 16.在以上几个题中这个应该是一个新问题了,设每个人的序列s为 a 1 , a 2 … … a n a_{1},a_{2}……a_{n} a1,a2an每个元素的取值范围为[0,n-1],根据Havel-Hakimi1我们可以知道这个这个序列不可能为0,1,2……n-1,所以不能同时有n个不同值出现在序列里,根据鸽巢原理必有两值相等。最后补充一点,使用Havel-Hakimi是因为我们涉及到要把题中的条件转化到我们的证明中,由于遇到的是图论,我们所设的序列受到无向图的限制,所以要加上的一些判断,在后面的题中我们依然能遇到

 17.又是道图论的题(我无法解释为什么偶数的时候没用Havel-Hakimi),由于都是偶数,所以只有(98,96,…0)共50个数,设度数(认识人个数)序列为 a 1 , a 2 . . . . . . a n a_{1},a_{2}......a_{n} a1,a2......an我们分几种情况讨论
  情况1:某个偶数在序列中只出现一次,那么序列中剩余的99个数被赋上49个值必然会出现3个数同值
  情况二:没有数在序列中只出现一次或者多余两次,这句话只能有一种情况符合,就是序列(0,0,2,2,4,4,…98,98)所有偶数值都出现了两次,但这种情况不会出现,因为有两个数值为0,意味着有两个人谁都不认识,所以一个人最多认识 99 − 2 = 97 99-2=97 992=97个人,但序列中存在98个人,于是这种情况不成立,
情况二的反面就是"存在数在序列中出现一次或大于等于三次",根据情况一我们知道有数字在序列出现一次必有其他数出现大于等于三次,命题得证

 18.在正方形中最远的距离就是对角线距离,我们可以反推存在两个点相距 2 \sqrt{2} 2 那么说明这两个点可能在同一个 1 × 1 1\times1 1×1正方形中,现在看题并翻译,题目中要求在 2 × 2 2\times2 2×2的正方形中放置5个点使得他们有两个点在同一个 1 × 1 1\times1 1×1正方形中,于是我们将正方形分成4个 1 × 1 1\times1 1×1正方形,根据鸽巢原理,必有两个点在一个正方形内部,证明结束

 19这题有三个小问,我就分着给大家答.
(a)这和18题是一样的,三角形中最远的两点距离就是边的距离(怎么找的,你可以想象作圆,由于等边三角形在三个点出的情况是对称的,所以选择一点作圆,例如顶点(我也不知道我为啥想的是顶点,如果你有证法不妨发给我看^ _ ^)就能发现到达两边的距离最大),然后根据这些将三角形分割(注意不是因为题目给出三角形我们就分成三角形,我们可以分成圆形,分成正方形,但是分成别的形状就不能进行密铺,导致有些形状我们要进行特殊关注,造成麻烦)
(b)同上
(c )就是道推导题,我们只要知道了过程知道关键在哪就能反推回去,我就不写了吧!

我没有学完Ramsey定理,所以这部分题先不做了吧!

 26.这道题我没有办法用鸽巢原理,如果有人知道请告诉我,考虑两列的情况,两列这个问题等价于另一问题——“第一列按顺序给出,第二列第i行元素都大于第一列的i行元素,证明第二里元素序排列后满足,同行内两元素前一个小于后一个” 我们把这个问题叫做问题A,问题简单的了起来,如果新得出的问题得证,那在mn的情况下我们使用归纳法:
  (1)初始:对第一列排序,第二列得排序结果依然维持着在两列中每行第一个元素小于第二个元素;
  (2)归纳:对第i列排序,第i+1列得排序结果依然维持着在两列中每行第一个元素小于第二个元素;(原因是问题A已经被证出来了)
 那么下面就证明一下问题A,我的证明方法是利用递归,先将 a i a_{i} ai有序给出,然后将对应的无序 b i b_{i} bi给出来,我们把情况B(n) 记作”在规模为n时至少有n-i+1个 b i b_{i} bi数大于等于 a i a_{i} ai“,原因是不等式(数轴可能会直观些)

{ a i ≤ b i a i ≤ a i + 1 ≤ b i + 1 . . . a i ≤ a n ≤ b n \left\{\begin{matrix} a_{i}\leq b_{i}\\a_{i}\leq a_{i+1}\leq b_{i+1}\\.\\.\\.\\a_{i}\leq a_{n}\leq b_{n}\end{matrix}\right. aibiaiai+1bi+1...aianbn

下面我们使用递归
  从最后一个元素 a n a_{n} an开始,我们从大于 a n a_{n} an b i b_{i} bi中能够找出最大的一个记作 c n c_{n} cn,根据不等式关系 c n c_{n} cn一定是 b i b_{i} bi中最大的一个,且满足 c n ≥ a n c_{n}\geq a_{n} cnan从b序列中剔除选出的数字,现在的结论是大于 a i a_{i} ai b j b_{j} bj个数比原来的小1(因为最大的没了),那么,大于 a i a_{i} ai b j b_{j} bj个数至少为n-i也就相应成立,将 a n a_{n} an除掉我们发现这个问题由”情况B(n)“变为了情况”B(n-1)“,最终完成情况B(1),这个时候得到的 c c c是b的有序序列,且满足 a i ≤ c i a_{i}\leq c_{i} aici

  当然问题A还有一种证法,群友张晴川大佬(大佬轻松的就证出来了)提供了这样的思路,先进行证明 2 × 2 2\times2 2×2的情况,

[ a 1 b 1 a 2 b 2 ] \begin{bmatrix} a_{1}&b_{1}\\ a_{2}&b_{2}\\ \end{bmatrix} [a1a2b1b2]

第一列依然是有序的,在这两列数中满足 a i < b i a_{i}ai<bi,经过分类讨论( b i b_{i} bi正序还是倒序)很容易证明当对 b i b_{i} bi排序后依然满足某行内顺序,那么对于

[ a 1 b 2 a 2 b 2 . . . . a n b n ] \begin{bmatrix} a_{1}&b_{2}\\a_{2}&b_{2}\\.&.\\.&.\\a_{n}&b_{n}\\ \end{bmatrix} a1a2..anb2b2..bn

在这两列中找出存在 b i b_{i} bi最大的那行与最后一行构成一个 2 × 2 2\times2 2×2的矩阵进行排序(如果找到的那行不是最后一行 那么得到的两行进行排序就是将 b i b_{i} bi b n b_{n} bn进行交换)依然满足行内前一元素大于后一元素,现在b中最大元素与a中最大元素在一起了,去掉最后一行那么问题的规模就变成了n-1,接下来递归求解就行了。

  28.假设 a i a_{i} ai是男人名单上女人的个数 b i b_{i} bi是女人名单上男人的个数,那么由 ∑ i = 1 20 b i = ∑ j = 1 100 a j \sum_{i=1}^{20}b_{i}=\sum_{j=1}^{100}a_{j} i=120bi=j=1100aj当存在 b i ≤ 80 b_{i}\leq 80 bi80时会有20名男性不在它的名单上,选出那20位男性,他们最多能有19人与女性配对不服题意,当 b i ≥ 81 b_{i}\geq81 bi81 ∑ j = 1 100 a j ≥ 1620 \sum_{j=1}^{100}a_{j}\geq1620 j=1100aj1620,在和为1620的情况下有符合题意的分配,有80个男人他们的表上有20个女人,剩余20个男人表上一人分配一个女人,且这二十个人每个人都不会重复。(这道题用鸽巢原理的话应该是这样,先证明1620的分配好使,在证明 ∑ i = 1 20 b i < 1620 \sum_{i=1}^{20}b_{i}<1620 i=120bi<1620的时候有 b i ≤ 80 b_{i}\leq80 bi80,上面已经证明 b i ≤ 80 b_{i}\leq80 bi80是不符合题意的)

 会的都写上了,剩下的几道题不是没想出来,就是连题都不知道要干嘛 ,有兴趣的同学可以评论中给我些提示


  1. 其递归定义为:由非负整数组成的非增序列 s 度 s_{度} s d 1 , d 2 , … , d n ( n ≥ 2 , d 1 ≥ 1 ) d_{1},d_{2},…,d_{n}(n\geq2,d_{1}\geq1) d1d2dnn2d11是可图的,当且仅当序列: s 1 : d 2 – 1 , d 3 – 1 , … , d d 1 + 1 – 1 , d d 1 + 2 , … , d n s_{1}:d_{2}– 1,d_{3}– 1,…,d_{d1+1} – 1,d_{d1+2},…,d_{n} s1:d21d31dd1+11dd1+2dn是可图的 ↩︎

你可能感兴趣的:(组合数学,算法)