面试题里的数学证明题

1.任意给一个数N,试证明这个数的某个倍数的十进制表示是01串,比如3的倍数111是二进制表示,5的倍数10是二进制表示

证明:

    取N个不同的正十进制数N1,N2,N3...Nn(每个数的每位数上均为1,比如1,111,1111等)。

   将每个数对N取模(MOD N),得余数M1,M2,M3...Mn

     若M里有数为0,则得证

     若M中无值为0,而已知对N求模,余数最多有N-1个,这与所得N个余数矛盾

           所以,N个余数里至少有2个数相同,设为第i和第j个(i!=j),且余数设为a

           则,Ni = ki*N+a  ;  Nj = kj*N+a ( kj > ki)

           则,Nj - Ni =(kj - ki)*N。而容易看出,Nj - Nj必为二进制表示的十进制数

          得证

2. 试证明素数有无穷多个

证明:

  假设素数是有限个的,所有素数的集合为Pset,且size(Pset)为N,升序列分别为:

  P1,P2,P3....Pn

  构造新数M =P1*P2*P3...Pn+1

   若M是素数,由于M > Pn,这与Pn是最大素数矛盾;

   若M是合数,由于“一个合数可以拆分为一组素数的乘积,并且只可以拆分为一组素数的乘积”,

       设M可被某一素数p整除

       又由于P1到Pn均无法整除M(余数1)

       所以 素数p 不属于Pset,这与Pset包含了所有的素数这一假设矛盾

  所以假设不成立。

  得证

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值