Q:有12个球,其中一个是坏球。不知道坏球比其他球重还是轻。给你一个无砝码的天枰。要求称三次称出那个坏球,问如何称?
这题听说是微软的面试试题,基本给你5~30分钟答出来.其实要找出哪个球有问题三次算简单了,但是要加上判定出是那个球是重了还是轻了这就要深一层考虑了..
A: 给球分别编号 1~12号.
第一次: 1 2 3 4 和 5 6 7 8摆上天平对比.
①相等=. 这就说明有问题的球在 9 10 11 12这四个里面,其他球1~8都是标准质量(标准质量的球都用绿色表示)
第二次: 9 10 和 11 1 对比
①相等= :证明有问题的球就是12号啊
第三次:1 和 12 对比. 相等= :这是不可能的.
①左倾>: 12 轻了.
②右倾<: 12 重了
②左倾>: 这就说明要么是9 10重了(这里只要有可能重了我都用红色表示),,, 要么就是11 轻了(有可能轻了的用蓝色表示)
第三次:9 11和 1 2 对比
①左倾>: 9 重了.
②右倾<: 11 轻了
③相等=: 10重了
③右倾<: 这就说明要么是11重了,, 要么就是9 10 轻了
第三次:9 11和 1 2 对比
①左倾>: 9 轻了
②右倾<: 11 重了
③相等=: 10 轻了
②左倾> 这就说明要么是1 2 3 4重了(这里只要有可能重了我都用红色表示),,, 要么就是5 6 7 8 轻了(有可能轻了的用蓝色表示)
第二次:1 2 5 和 3 4 6
①左倾>: 说明要么是1 2重了,,, 要么就是6 轻了
第三次:1 6和 9 10 对比
①左倾>: 1 重了.
②右倾<: 6 轻了
③相等=: 2重了
②右倾<: 说明要么是3 4重了,,, 要么就是5 轻了
第三次:3 5和 9 10 对比
①左倾>: 3 重了.
②右倾<: 5 轻了
③相等=: 4重了
③相等=: 问题球在7 8
第三次:7和 9 对比 左倾是不可能的.
①右倾<: 7 轻了.
②相等=: 8 轻了.
③右倾< 这就说明要么是1 2 3 4轻了,, 要么就是5 6 7 8 重了
第二次:1 2 5 和 3 4 6
跟上面一样的方法,讲红色和蓝色反过来就可以了我懒得写那么多了
上面总过8+8+8=24个的可能结果都列出来了,意思就说,12个球的任一个球轻了或重了都在上面有;路线可以到达.
当做IQ题来处理还好,但是万一把数据改了,又要浪费很多时间了.所以比如问你13个球,至少要用几次才能找出来呢?
13个球就26种情况.照一次天平对比能有 > = < 这三种情况.
但遗憾的是并不是3³=27所以三次也能解决(你试给我看...
算法研究:
球一开始并不知道他们的基本状态的..需要使用比较才能给他们"附上颜色"(是可能轻了还是可能重了)
两个球有一个坏了.要用多少次去找出那个球并判断他轻了还是重了.(编号球1和球2)
1 和 2 比较是毫无意义的.好吧我提供标准球3~max号
1 和 3 对比,如果①:>的话是1重了.②<:1轻了.③:=的话是2号有问题,但不知道2号是轻了还是重了.
结论:对于两个没有状态的球,要1次能找出,但可能要2次才能判断轻重.
假如 1 2呢? 1 和 3 对比.①:<的话是1轻了.②=的话是2轻了 (同样适用1 2)
假如 1 2呢? 1 和 3 对比.①:<的话是1轻了.②=的话是2重了. (同样适用1 2)
结论:对于两个有状态的球,1次能找出并且判断轻重.
三个球有一个坏了.要用多少次去找出那个球并判断他轻了还是重了.(编号球1 2 3)
1 和 2 比较...①:>的话是1重了或者2轻了..②<:1轻了或者2重了.③:=的话是3号有问题,但不知道3号是轻了还是重了
没标准球啊,坑,给出标准球
1 2 和 4 5 对比,如果①:>的话是1 2重了.②<:1 2轻了.③:=的话是3号有问题,但不知道3号是轻了还是重了.
结论:对于三个没有状态的球,至少要1次能找出,要2次才能判断轻重.
假如 1 2 3呢? 1 和 2 对比.①:<的话是1轻了.②:>的话是2轻了.③=的话是3轻了
假如 1 2 3呢? 1 和 3 对比.①:<的话是1轻了.②:>的话是3轻了.③=的话是2重了
结论:对于三个有状态的球,1次能找出并且判断轻重.
四个球有一个坏了.要用多少次去找出那个球并判断他轻了还是重了.(编号球1 2 3 4)
1 2 和 3 4对比毫无意义.
1 和 2 对比,剩下3 4 就跟两个球一样.(两次才能找出)
1 2 和 3 5 对比,①=的话4有问题. ②>的话 1 2 3 4 ③<的话 1 2 3 4 .套用上面的三球(两次才能找出并判断)
结论:对于四个没有状态的球,至少要1次能找出,要2次才能判断轻重.假如 1 2 3 4呢? 1 2 和 3 5 对比.①:<的话是1 2轻了.②:>的话是3轻了.③=的话是4轻了(四种可能性,一次只能实现三种呢)
假如 1 2 3 4呢? 1 2和 3 5对比.①:<的话是1轻了.②:>的话是2重了 或3轻了.③=的话是4轻了(同上
假如 1 2 3 4呢? 哎不说了跟上面一样.
假如1 2 3 4呢? 呵,这种事三个球的范畴不是我的事.
结论:对于四个有状态的球,2次能找出并且判断轻重.
就不再写下去了,估计都想得出了.先推一下我们的12个球是怎么管理的.
总共有三次机会可以称,简单来说,最后一次必须只能是三种可能性.
就是说倒数第二次可以有9种可能性.
就是说倒数第三次可以有27种可能性(咦,哪里不对)
可惜,你需要使用一次来给他附上状态!!!
附状态这种仪式,只有两个结果.......一:成功知道哪些是标准,哪些是可能重了,还有可能轻了. 二:附魔失败,但是知道问题出现在哪.
举个例子: 1 2 3 三个球.
符状态: 1 和 2 比较, .①:<的话:符状态成功,1 2 3~~~②:>的话是符状态成功1 2 3~~~.③=的话,符状态失败.但是问题就出现在3号上
简单易懂
.
12个球怎么三次分出有问题的!!
第一次:符状态: 成功的话就是 [1 2 3 4] [5 6 7 8] [9 10 11 12] (以8种可能性进入能容纳9种结果的第二次分配)
8个有状态的数,分成三堆~ [1 2 5 ] [3 46 ] [7 8] (无论结果是哪一堆,可能性只有2~3,进入第三次分配)
失败的话就是=号的时候,但是知道问题出现在[9 10 11 12] (以8种可能性进入能容纳9种结果的第二次分配)
继续符状态:成功的话就是[9] [10] [11 12](以2种可能性进入能容纳3种结果的第三次分配)
失败的话就是=号的时候,但是知道问题出现在[11 12] 有问题.(这种有四种结果不可取)
应该改为这样比较[9 10] [1 11] [12] (以3种可能性进入)
失败的话就是[12]的问题,2种可能性...~~~~~~
______________________________________________________________________________________________
问:如果是13个球呢????
第一次: 附状态 5 5 3 (10种可能性 )
4 4 5 (8种可能性) 失败时10种可能性.
不说下去了额,毫无疑问,要4次才能呀.
所以说并不是3³=27>13个球的26种情况就可以了呢.
顺带一说,4次的话就是进入第二次时的容量是27的说. 就是说,你可以这样 13 13 13分配
就是说...............39个球都是能只用4次就可以称出来了..
120个球只用称5次就能找出有问题的球了