• 浅谈鸽巢原理的证明和简单应用


    一、鸽巢原理的证明

    1.定义:

    若有n个鸽巢和kn+1只鸽子,所有的鸽子都进入鸽巢,那么至少有一个巢中有k+1只鸽子(n,k≥0)。

    2.证明(反证法):

    若每个鸽巢中的鸽子数都不大于k,则总鸽子数<=kn,与已知相悖。得证。

    3.拉姆齐(Ramsey)定理的证明:6个人中,要么存在三个人彼此互相认识,要么存在三个人彼此都不认识;

    证明:设六个人为六个点,认识或不认识用两种不同颜色的线段代表,因为两人只有一种关系,所以任意一点一定会引出连向其他5点的五个线段,根据鸽巢定理,有2种关系,有2*2+1=5条关系线,即k=2,
    那么必定有一种关系拥有2k+1=3条关系线,得证。

    4.中国剩余定理(孙子定理)的证明:

    求证:设N,M除了1以外没有公约数(即N,M互质),两个数字a,b满足0≤a<N, 0≤b<M,则恰好存在且仅存在一个数字c满足0≤C<NM且c除以n的余数为a,除以m的余数为b。
    证明(反证法):设存在两个不等的数0≤C1,C2<n
    m,使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,与假设相悖。得证。

    5.一些数学定理的证明:

    ①求证:有理数中的无限位小数在小数点后某一位必开始循环。

    证明:由有理数定义我们可设该有理数为N/M(N,M∈Z且M!=0),那么根据竖式除法的原则,求值过程中不断更新的是分子N的值,由于不同分子都是由上次的分子对分母取模所得知,去M个不同的分子,那么根据鸽巢原理,他们中至少有两个数关于M同余,那么下一位结果也就循环了。得证。

    ②求证:从1到2n中,选n + 1个数,至少有一对数,其中一个数是另一个数的倍数;

    证明:将选中的n+1个数中所有的2都除掉,即除以2k,由于1-2n中只有n个奇数,一定有一对数的奇数形式是相等的。这两个数分别是2mequal,2^nequal,因此一定一个数是另一个数的倍数。得证。

    ③求证:从1-2n中,选n+1个数,至少有一对数是互素的;

    证明:我们可以将[1,2n]划分为n个区间[1,2],[3,4],......,[2n-1,2n],那么n+1个数中至少有两个数来自同一区间;由相邻两数互质知n+1个数中,至少有一对数是互素的。

    ④求证:对于任意正整数 n ,都能找到一个 n 的倍数,它全由数字 0 和 1 构成,且前半部分全部为1,后半部分全部为0;

    证明:我们取n个数1,11,111,1111,......,i个1,由鸽巢原理知,这n个数中对n取模至少有两个数相同,设较大的数为M,较小的数为m,则易证n|M-m;因为M为长度大于m的1串,那么相减后M-m前半部分一定全部为1,后半部分全部为0;

    具体关于GCD、LCM相关的证明可以参考以前关于最大公约数的性质的随笔:http://www.cnblogs.com/COLIN-LIGHTNING/p/8371664.html;

    二、相关题目

    1.[POJ2356]Find a multiple

    题解随笔:http://www.cnblogs.com/COLIN-LIGHTNING/p/8481478.html

    2.[POJ3370]&[HDU1808]Halloween treats

    题解随笔:http://www.cnblogs.com/COLIN-LIGHTNING/p/8481488.html

    3.[HDU1205]吃糖果

    题解随笔:http://www.cnblogs.com/COLIN-LIGHTNING/p/8481493.html

  • 相关阅读:
    LAMP的搭建
    linux利用命令重置大量密码
    CSS的应用下
    Day13 CSS的与应用
    Day12 CSS简单用法
    Day12 前端html
    Day11 数据库的基本语法(偏重于查询)
    Java-->把txt中的所有字符按照码表值排序
    Java-->将txt文件的所有行反转
    Java-->在txt文件每一行前加行数和冒号
  • 原文地址:https://www.cnblogs.com/COLIN-LIGHTNING/p/8439555.html
Copyright © 2020-2023  润新知