问题
现在假设有 n 个货物,其中有一个货物是次品,次品比正常的要轻一些,你只有一个天平,请问,至少需要称多少次能保证一定找到次品?
这其实是一道非常简单的问题,但是要是之前没遇到过还真有可能不知道怎么下手,通常就是采用对半分的方法了,但这个思路是错的。
我第一次碰到这个题目是在家辅导小学的妹妹做数学题的时候,那个时候我想的就是对半分,然后错了,然后就被鄙视了。后来在一些公司笔试以及面经当中居然又碰到,所以感觉这种题目考察地挺多的,还有有必要梳理一下解题的思路和套路。
解题思路
其实解题方法很简单,就是不断地3等分即可,那为什么是3等分,而不是4等分或者2等分呢?你想想,如果是三等分的话,假设分成 A、B、C三组,阿么可以先比较 A 和 B,如果次品在这两组中,那么后续就只要在轻的那一组中继续寻找即可,如果 A 和 B相等,那么次品就肯定在 C 中,后续只要在 C 中找即可,也就是说称一次可以排除掉三分之二的可能性。
而要是2等分的话,称一次只能排除掉二分之一的可能性。4等分的话,就不好说了,可能性很多,最差的情况是比3等分差的。
所以只要不断地3等分即可。但是有一个问题是每一步中要从中寻找次品的货物集合的数量 n 可能不是&#