微软面试智力题

来源:互联网 发布:淘宝店铺电脑怎么激活 编辑:程序博客网 时间:2024/06/04 19:33

1.烧绳子计时,绳子不均匀,每根绳子可以烧1个小时,要求计时45分钟,1小时15分钟。绳子数量不限。

第一:取一根绳子两头同时点燃。取第二根绳子只点燃一头。当第一根绳子燃烧完毕之后,耗时30分钟。

第二:当第一根绳子燃烧完毕之后,同时点燃第二根绳子的另外一头,当第二根绳子燃烧完毕之后,又耗时15分钟。累计耗时45分钟。

第三:在第二根绳子燃烧完毕之后,从两头同时点燃第三根绳子,第三根绳子30分钟燃烧完毕,算上前面的45分钟,累计计时75分钟。也就是1小时15分钟。

2.如果有12个球,其中有一个球其质量与其他小球不同(可重可轻),要求在3次内找出这个质量不同的球?如果有13个球,又该怎么测量呢?

1)12个球的情况,我们对小球进行分组,分别为abcd, ABCD, 1234。首先测量abcd和ABCD,如果相等,则质量不同的球一定在1234中。从4个小球中找出质量不同的小球,两次是一定可以找出的。我们可以让1和2比较,如果1和2相等,再让1和3比较。如果1和3相等,则4一定质量不同,如果1和3不等,则3一定质量不同。如果1和2质量不相等,则1和2之中,必定有一个球或重或轻,不失一般性地假设1重,则将1和3比较,如果1比3重,则1是质量不同的球,且质量重。如果1和3相等,则2为质量不同的球,且质量较轻。

如果abcd和ABCD质量不相等,不失一般性假设abcd重,则我们接下来测abC1和Ad34。如果abC1和Ad34相等,则问题一定出现在cCD。如果abC1重,则问题一定出现在abA,如果abC1轻,则问题一定出现在dC。三个球要找出一个质量不同的球,只需要测一次。

2)13个球的情况,我们仍然对小球进行分组,分别为abcd,ABCD,12345。由上面所知,与12个球情况不同的是当abcd与ABCD质量相同的时候,如何在两次之内把12345中质量不同的球找出来。我们抽出三个正常的球abc与123测,如果不等,则问题球在123中,一次可以测出。如果相等,则问题球出现在45中,我们取a与45组成三球组,一次可以测出来。


这道题真正的解决技巧在于,尽可能地把问题球的所在范围给缩小。而且要知道,当问题球出现在3个球中的时候,只需要一次就可以测出来。当问题球出现在4个球中的时候,只需要两次就可以测出来。

3.四个人过桥,速度分别为1分钟,2分钟,5分钟,10分钟,只有一把手电筒,每次只能两人一起过河。要求在17分钟内过河。

方案:1和2先过去,然后1回来。之后5和10过去,让2回来,最后1和2一起过去。用时为2+1+10+2+2=17

之所以无法解决这个问题,主要可能因为思维定势,比如当5和10过去时,我们觉得回来的必定是5和10,而不能是2。

我们要尽可能使速度慢的一次性通过,不再回来。速度快的可以来回折返。

0 0