组合数学引论 第一章 答案 6-10

本文通过六个数学证明问题,展示了如何运用算法解决实际问题,并深入探讨了数学与计算机科学之间的联系。

6.从1,2,...,200中任取100个数,其中之一小于16,那么必有两个数,一个能被另一个整除。

   解:设a1,a2,...a100是被选出的100个整数。对任一整数ai,可写如下形式:

                                    ai = 2^si * ri (i =1,2,...100)

           ri 为奇数,只能取1,3,5,...,199这100个奇数。

        <1>若ri(i=1,2,...100)中有两个数相等,如rx=ry(1<=x,y<=100),不妨设sx<sy,则ay/ax=2^(sy-sx)*(ry/rx)=2^(sy-sx)为整数,符合题意。

        <2>若ri(i=1,2,...100)两两不等,则将取遍1,3,5,...199这100个奇数。

              不妨设r1=1, r2=3,....r100=199.

             因为100个数中有个小于16,则必在r1-r8中,而对r1-r8的任何一个数ri,均存在rj,使得rj是ri的倍数。

            如r3=5,  则有rj=15,25等

           同时对于对应的si,均可以取到sj=si。

           故aj/ai=2^(sj-si)*(rj/ri)=rj/ri是整数

    综上,命题为真。


7.从1,2,...,200中取100个整数,使得其中任意两个数之间互相不能整除。

解:这100个数取101,102,103...200。


8.任意给定52个数,它们之中有两个数,其和或差是100的倍数。

解:令这52个数为a1,a2,...a52.不妨设它们从小到大排列。它们模除100后的值为r1,r2,...r52.显然有0<=r1,r2,...r52<=99.

               若存在i,j(1<=i,j<=52)使得ri=rj.则(aj-ai)mod100 =0。故这两个数符合题意

               若这52个余数互不相等,则我们证明必有两个数和为100.

               由于在0到99这100个数,除了0和50外,有49对和为100.(1与99,2与98,,...49与51)

               故根据鸽巢原理可知,r1,r2...r52这52个数中,必有2个数和为100,设为ri和rj。则对应的(ai+aj)mod100=0.故这两个数符合题意

综上所述,命题为真。


9.在坐标平面上任意给定13个整点(即两个坐标均为整数的点),任意3个点不共线,则必有一个以它们中的三个点为顶点的三角形,其重心也是整点。

解:我们假设这13个点的坐标为(x1,y1),(x2,y2)...(x13,y13).先考虑这13个点的横坐标

                这13点横坐标模除3后余数只会是0,1,2这三种情况。由鸽巢原理知,必有5个点余数相同。对于这5个点,任取其中3个点,它们的横坐标和必是3的整数倍。

                再考虑这5个点的纵坐标。这5个点纵坐标模除3后余数只会是0,1,2这三种情况。若0,1,2这3个值均可取到,这取对应的这3个点,它们的纵坐标和也是3的整数倍。故 这3个点满足题意。若0,1,2不能只能取到2个或者1个,则根据鸽巢原理,这5个点中必有3个点的余数相同,则这3个点也满足题意。

综上所述,命题为真。


10.上题中若改成9个整点,问是否有相同的结论?试证明你的结论。

解:设(x,y)是整点,每个分量模3后有如下表的结果: 
                (0,0) (0,1) (0,2) 
               (1,0) (1,1) (1,2) 
                (2,0) (2,1) (2,2) 
            若有3个点模3后的结果落在上表中的同一格中,则这3个点的重心是整点。
           若有3点占满一行,则3点重心是整点;
           有3点占满一列,则3点重心是整点;
          若存在一组均匀分布,则有3点重心是整点。
                  由上表可知,若只有8个点,也不能保证有3点的重心是整点。(因为若每个格子都有 2点,则只占有4个格子,无法保证上面的要求)
          下面假设存在9个点,其中任3点的 重心都不是整点。则这9个点,至少占有=5个格子(因 为每格中最多有2个点,否则有3个点的重 心为整点),每行最多有2格,每行 都有点。同理,每列都有点。不妨设第一行2点,第二行2点,第三行1点前2行有两种模式:
       这样第三行的点无论在哪一列都构成占满一列或构成一组均匀分布。满足前面说的三点重心是整点的情况。
         故9个点能保证其中存在3个点的重心是整点。(参考http://zhidao.baidu.com/link?url=Y5UWx2zfOm01S360J21MsLOWQ1fA-L2KgH5Yj_UBG3oKuB3croy5igYUSixqdnho8RxwITEdGl27ODWvmsNuPK)

 

### 组合数学引论第三章答案解析 #### 容斥原理及其应用实例详解 在探讨组合数学中的容斥原理时,这一章节深入讲解了不同数量集合上的容斥原理以及其多种应用场景。对于两个集合的容斥原理而言,公式表达为 |A ∪ B| = |A| + |B| - |A ∩ B|[^2]。 当扩展到三个乃至更多个集合时,则有更复杂的计算方式来求解并集元素的数量。具体来说,在处理 n 个集合的情况下,通过交替加上和减去交集中元素数目可以得到最终的结果。 除了理论部分外,本章还提供了丰富的实际案例分析: - **错排问题**:研究如何在一个序列中重新排列使得没有任何项位于原来的位置上; - **有限制条件下的排列**:考虑某些特殊约束条件下可能形成的排列情况; - **相对禁位排列**:涉及对象之间存在相互排斥关系时的有效安排方法; - **欧拉函数φ(n)**:用于描述小于等于给定整数n且与其互质正整数的数量; - **棋盘多项式**:利用母函数概念解决复杂布局问题的方法之一,包括但不限于国际象棋棋子放置等问题。 这些例子不仅加深了读者对抽象概念的理解,同时也展示了组合数学广泛的实际用途。 ```python def euler_totient_function(n): result = n # Initialize result as n p = 2 while(p * p <= n): if (n % p == 0): while (n % p == 0): n //= p result -= int(result / p) p += 1 if (n > 1): result -= int(result / n) return result ``` 此代码实现了计算欧拉函数φ(n),即统计不大于n并与之互素的自然数个数的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值