按 ‘ 天平 ’ 标签归档

天平寻异问题

核桃

刚看到一道题:十二个球,有一个重量与众不同(没说是重是轻),有架天平,限最多称三次把这个球找出来。

博主@张泉灵表示,有这时间思考还不如立即动手称十一次,这一定让她的侄子很是扫兴,不过十二个球也太少了,如果改成“二百四十三个球里有一个重的,限五次把它称出来”或许能帮她认真想一会儿。有人认为这是文科生和理科生的不同,其实即使在理科生里,也有做底层设计和现场客服的不同。

顺便想起了两个人来,一个是惯用客服心态对待设计,一个是惯用设计心态对待客服,都是人间悲剧。用客服心态对待设计的,事后也不想着补严实了,程序里满是创可贴,隔三岔五地垮;用设计心态对待客服的,待找到出血点,一针一线细细补好,再加上两三年内可以预见的种种特殊防范,病人早已失血过多死在了床上。只顾“扬汤止沸”,非要“釜底抽薪”,是两种极端人格,还是走中间路线比较稳妥些。

扯远了,回到问题上来。先跳入脑海的就是二分查找:先是六对六地称,然后三对三,最后一对一,搞定。但二分法有个前提,你得预先知道那个球是轻是重。否则,第一步六对六称完,秤盘确实一高一低,下一步的三对三,你打算挑哪个秤盘下手呢?

方法如下,没有思路。事后总结,是“与众不同者,不一定非要上秤盘”和“让大家动起来”。

1、把十二个球分三堆,为了表述方便,称为A、B、C,每堆四个球。
2、天平两边放A堆和B堆。(第一称)

3.1、如果天平平衡,则说明A堆和B堆都是正常球,异常的那个球在C堆里。在天平一侧放三个C球,另一侧放三个正常球(从A或B里随意取),再称。(第二称)

3.1.1、如果依然平衡,则说明没上秤的那个是异常球。【结束】
3.1.2、如果天平失衡,则上秤的三个C球里有异常,并且这时已经知道它是轻是重,任意取两个C球放天平两边。(第三称)
3.1.2.1、如果一样重,那么剩下那个就是异常的。【结束】
3.1.2.2、如果天平失衡,那么和第二称里C球翘起/下沉方向一致的那个,就是异常球。【结束】

3.2、如果天平失衡,则异常是在A堆或B堆里,而C堆球可以当做标准砝码用。拿走三个A球,用三个B球去陪剩下的A球,而B球空下的位置填三个C球。就是说,天平一边是A1B1B2B3,另一边是B4C1C2C3。(第二称)

3.2.1、如果天平平衡,则说明异常在拿下去的三个A球里,并且刚才全体A球的表现已经说明了它是轻是重,只需任意称其中两个,(第三称)就知道谁是异常的。(参考3.1.2)【结束】
3.2.2、如果天平和第一称的AB盘倾斜方向保持一致,则说明异常球还在原位没动,不是A1就是B4,只要把其中一个和一个C球比较一下即可。(第三称)【结束】
3.2.3、如果天平的AB盘倾斜方向发生翻转,则说明异常跟着三个B球转移到A盘去了,而且我们这时知道了它是轻是重。只要任意对比其中两个即可。(第三称)【结束】