作者supersatan (像风一样难以捉摸的男人)
看板Inference
标题Re: [问题] 今天老师问的一个问题
时间Sun Nov 28 23:48:04 2004
※ 引述《elvisu (啥?)》之铭言:
: 桌上有12个球, 有11个是一样重的, 另一个不一样重, 但不知道是较轻还是较重,
: 你有一个天平, 只能秤三次, 就知道是哪一个是不一样重的球。
: 请问怎麽秤?
: 这个问题很像有点旧了
: 可是我一直不知道它的正确答案
: 往上爬文也没看到解答
: 找也找不到
: 请问有哪个好心人可以告诉我答案吗??
首先,为了方便各位了解,先将十二颗球编号成a1、a2、a3、a4、b1、b2、b3、b4、
c1、c2、c3、c4三组,并将问题球设成x,再一一考虑各种情况。
第一次秤量:将a组和b组秤量
case1:a=b
这代表x在c组,则做第二次秤量。
case1的第二次秤量:将c1和c2秤量。
此时有三种可能 >、<、和=
{
if ( = ) x在c3或c4中
case1的第三次秤量:将c1和c3秤量
if (c1 > c3)则c3=x
if (c1 < c3)则c3=x
if (c1 = c3)则c4=x
}
{
if( >或< ) x在c1或c2中
case1的第三次秤量:将c1和c3秤量
if (c1 >或< c3)则c1=x
if (c1 = c3) 则c2=x
}
case2:a>b
这样有点麻烦,代表着x在a或b组,因此第二次秤量要用点技巧,
我们假设重盘和轻盘来讲会比较清楚。重盘就是第一次秤时比较重
的秤盘。
case2的第二次秤量:将a1b1c1放在重盘,a2a3b2放在轻盘
此时又有三种可能
{
if ( = ) 就代表这六个球都没问题,x在a4或b3b4中
case2的第三次秤量:把b3和b4秤量
if ( b3=b4 )则a4=x
if ( b3>b4 )则b4=x(因为比较轻的是x)
if ( b3<b4 )则b3=x
}
{
if (重盘 > 轻盘 ) 代表a4b3和b4都没问题,x在a1或b2中,因为他们没换过
case2的第三次秤量:把a1和c1秤量
if ( a1=c1 )则b2=x
if ( a1>或<c1 )则a1=x
}
{
if (重盘< 轻盘 ) 代表x在a2、a3或b1中,因为他们一换就变了
case2的第三次秤量:把a2和a3秤量
if ( a2=a3 ) 则b1=x
if ( a2>a3 ) 则a2=x,因为他是影响重量的因子
if ( a2<a3 ) 则a3=x
}
case3:a<b
和case2的用的方法一样,秤完後会发现每颗球都有可能是x。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.83.147
1F:推 zephyr:case1的秤法改一下比较好 61.228.175.136 11/29
2F:→ zephyr:不然也是会无法判断有问题那个的轻重 61.228.175.136 11/29