九章算法面试题3 找坏球

来源:互联网 发布:女生云计算就业前景 编辑:程序博客网 时间:2024/05/16 00:52

九章官网-原文网址:

http://www.jiuzhang.com/problem/3/


题目

有12个球,1个没有砝码的天秤。其中有11个球的重量是一样的,另外1个是坏球,和其他球的重量不一样,但无法确定是轻了还是重了。请问如何用天秤称3次,就找到坏球并确定是轻了还是重了。(没有砝码的天秤只能比较出两边谁重谁轻或是重量相等,无法求得具体的重量差)


解答

将球进行编号: 1 2 3 4 5 6 7 8 9 10 11 12,分为三组:(1,2,3,4) (5,6,7,8) (9,10,11,12)


第一称:称前两组。

   相等:可以知道8个球都是好的。

       第二次:称(1,2,3)和(9,10,11)。

            相等:12是坏球,用1和12称第三次就知道是重还是轻。

            不等:9,10,11 有坏球,并且已经知道是轻还是重。第三次称9和10就可以得到结果。

   不等:假设(1,2,3,4) < (5,6,7,8) (反过来的情况同理),并且知道了9,10,11,12是好球。

        第二次:称(1,2,5)和(3,4,6)。

            相等:7和8有一个重,称第三次即可。

            不等:假设(1,2,5)<(3,4,6)(反过来类似)。说明1,2轻了,或者6重了,第三次称1,2即可。


面试官角度

一般问这个问题的公司就是想找平时喜欢研究智力题的人,或者他们公司的招聘名额很少。这是一个十分经典的智力问题。一般来说很难要求面试者在几分钟之内考虑周全。所以碰到这样的问题,知道就是知道,不知道就是不知道。不过即便不知道,比较聪明的面试者还是能够大致说出一些思路。比如一开始分成3堆,这个思路答上就会加分。如果分成2堆6个和6个,你会发现基本是解不出来的。所以这个题目纯粹是考验你是否是一个聪明的面试者或者你是不是准备面试题的时候做过了(那也说明你态度很端正)。


0 0
原创粉丝点击