分球问题2则

很经典的俩个问题了

分球问题1:

 给定27个小球,已知其中只有一个小球与其他球的重量不同而且比其他的球重,现在给你一个天平(没有砝码,只能把2堆物体放到俩边,比较那一堆重,或相同),问最坏情况下最少称几次可以找到该球?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

答案是3次, 用三分法,每次把问题的规模缩减为原来的1/3,所以对于n个小球来说最多只需要  log3(n)取上整 次比较

 

分球问题2:

12个小球,已知其中一个球与其他的重量不同(但不知道比其他的球轻还是重),问如何用天平秤3次把该小球找出来


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这次问题不能只用3分来解决了,以为无法通过一次秤量确定异常小球在三堆球中哪一堆,解决该问题的关键是对球进行编号和充分利用秤量一次后所获得的信息。

首先考虑四个球的情况, 不难想到,我们可以通过至多俩次秤量找出四个球中不同的那个球,小于四个球的情况同理

 符号解释:设F(A, B)表示对A组B组进行称量,异常球为A, 正常小球为N

第一步: 我们把12个球平均分成三组,并对每组球编号为x, y, z,然后F(x, y),如果相等的话,则A一定在z中,z中有四个球,可以用至多俩次称量找出

第二步: 如果x > y(x < y 同理),  则可知3中的球都为N, 再次对x,y中的球作如下分组 p = {x[1], x[2], y[1],} q = {x[3], y[2], y[3]}, z = {x[4], y[4], N}, 并F(p,z), 如果相等,A一定在q中,此时可以F(y[2], y[4]), 相等则x[3]为A,如果不相等,则可以断定A在y中,而根据第一次的称量可推断,A必定较轻,所以轻的球即为A

第三步: 如果p > z(p < z同理),根据第一次的称量  则可以推断出  x[1], x[2]其中一个球比较重,或着y[4]比较轻,然后F(x[1], x[2]),如果相等,y[4]为A,如果不相等则较重的那个为A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值