|
有这样一个问题:一共有12个从外观看来是一样的乒乓球,其中只有一个乒乓球与其他的乒乓球在质量上有差别,现在有一个没有砝码的天平,只能使用这个天平称3次,问如何才能找那个质量有异常的球。 开始接触这个问题的时候,先是想到怎么快速收敛乒乓球的个数,所以第一次将天平两边各放3个乒乓球,如果天平平衡,说明质量有异常的在没称的6个乒乓球中;如果天平不平衡,则说明在已称的6个乒乓球中。这样在未称的6个中想寻找那个质量有异常的乒乓球将是很困难的事,因为至少这6个乒乓球要比那6个已称的乒乓球要少称一次。 这时我们考虑将12个球分成8个与4个,这样我们称量这8个球时的结果至少可以缩小到4个球,这样就分成了3组4个球,问题就简化到了同样的高度,即每4个球都还有两次称量的机会。 开始只是在考虑异常的情况下,并没有将这重量(即“轻”与“重”)考虑进去,这样在解出6个球是3次可分的情况下,我们尝试将重量加入算法的属性,因为在理论上应该有12种可能的情况才可以满足已知条件,题的本意是每个球都可能是异常的,天平只有3中可能(即“平衡”、“左轻”和“右轻”)。所以我们不考虑轻重,只将其定义为异常时,只能测量2*2*2中可能,即判断8个球。 在分析问题时我们应该考虑这些问题 1.那些已经判断了其中没有异常的球的集合中,也能帮助我们解决问题,因为他们是确定下来的正常的球。 2.应该在每一步后尽量将问题缩小到同一个高度。这样问题将细化,解决一部分也就解决了全部。 3.在已经称量过的乒乓球中,应该记录它们的轻重。以便将问题的属性增加,减少二异性的处理。 4.在进行了一次称量后,应该尝试天平左右两盘同时加球,减球,互换的情况。也就是把问题变化着看的思想。 经过这样的思想过程,得出了以下的结论。 将12个球分别编号(1,2,3,……,12号球)。 第一次称量:将1,2,3,4放入天平左盘,将5,6,7,8放入天平右盘。 一、如果平衡,则异常的球在9,10,11,12中。 二、如果不平衡,假设左侧较轻(右侧轻是算法相同)。则有异常的球在1,2,3,4,5,6,7,8中。 第二次称量: 一、异常在9,10,11,12中时,将1(正常),2(正常),3(正常)放入左盘,将10,11,12放入右盘。 如果平衡,则9异常 如果不平衡,假设左侧轻(右侧轻)时,异常的球在10,11,12中,且其中较重的为异常(其中较轻的为异常)。 二、异常在1,2,……,8中时,将4,6,7,8放入左盘,将5,9(正常),10(正常),11(正常)放入右盘。 如果平衡,则1,2,3有异常,且较轻的为异常。 如果仍然左侧为轻,则说明4,5有异常。 如果右侧为轻,则说明6,7,8有异常,且重的有异常。 第三次称量: 一、异常在10,11,12时(较重的为异常),将10放入左盘,将11放入右盘。 如果平衡,则异常的球为12。 如果左轻,则异常的球为11。 如果右轻,则异常的球为10。 二、异常在1,2,3时(较轻的为异常),将1放入左盘,将2放入右盘。 如果平衡,则异常的球为3。 如果左轻,则异常的球为1。 如果右轻,则异常的球为2。 三、异常在4,5时,将4放入左盘,将12(正常)放入右盘。 如果平衡,则异常的球为5。 如果不平衡,则异常的球为4。 四、异常在6,7,8时(较重的为异常),将6放入左盘,将7放入右盘。 如果平衡,则异常的球为8。 如果左轻,则异常的球为7。 如果右轻,则异常的球为6。 综上可得到12个球的每个球有错误的情况。 算法的发现和完善是一个比较漫长的过程,重要的是不要拘泥大脑已有的算法和思想,应该开阔自己的思路,发散思维。
文字
|
一共有 3 条评论