公司面试题B:
有12颗珍珠,其中1颗的重量与其他11颗的重量不同,除此之外这12颗珍珠完全相同。现在要用一台没有砝码的天秤,将那颗重量不同的珍珠找出来,并且确定它比其它11颗重还是轻。你至少要称多少次?给出测量方法。
zollty给出的答案:
只需要称三次即可。
首先将12颗珍珠从1到12编号,先将1-4号放在左边,5-8号放在右边。
1、2、3、4 (左) --------------- 5、6、7、8 (右) 剩下9、10、11、12
可以肯定: 如果天平平衡,则特殊珍珠在9-12号。如果左重(或右重)则特殊珍珠在1-8号。
分情况讨论:
一、如果右重则特殊珍珠在1-8号
第二次将2-4号拿掉,将6-8号从右边移到左边,把9-11号放在右边。就是说,把1,6,7,8放在左边,5,9,10,11放在右边。
1、6、7、8 (左) --------------- 5、9、10、11 (右)
1.1 - 如果右重则特殊珍珠在1、5号(因为9、10、11是标准重量的珍珠,而当6、7、8换成9、10、11后,仍然是右边重,说明要么是5号有问题,要么是1、6、7、8号中有一颗比较轻,而如果是6、7、8号中有一颗比较轻,那么第一次就应该是右边轻,与我们假设的右边重不一致,所以只可能是1号比较轻)。如果是1号,则它比标准珍珠轻;如果是5号,则它比标准珍珠重。 后面只需要确定1号和5号就可以了,很简单(第三次将1号放在左边,2号放在右边。 a.如果右重则1号是特殊珍珠且比标准珍珠轻; b.如果平衡则5号是特殊珍珠且比标准珍珠重; c.这次不可能左重。)
1.2 - 如果左重则特殊珍珠在拿到左边的6-8号,且比标准珍珠重。(因为第一次是右边重,6、7、8号换到左边后,却是左边重,可以断定,特殊珍珠在6、7、8号中,且比标准珍珠重)
接下来只需要分辨6、7、8号中较轻的一颗,很简单: 第三次将6号放在左边,7号放在右边。 a.如果右重则7号是特殊珍珠且比标准珍珠重; b.如果平衡则8号是特殊珍珠且比标准珍珠重; c.如果左重则6号是特殊珍珠且比标准珍珠重。
1.3 - 如果平衡则特殊珍珠在被拿掉的2-4号,且比标准珍珠轻。(因为第一次是右边重,左边轻,所以断定特殊珍珠在2~4号中,且比标准珍珠轻)
接下来只需要分辨2、3、4号中较轻的一颗,很简单: 第三次将2号放在左边,3号放在右边。 a.如果右重则2号是特殊珍珠且比标准珍珠轻; b.如果平衡则4号是特殊珍珠且比标准珍珠轻; c.如果左重则3号是特殊珍珠且比标准珍珠轻。
二、如果左重则特殊珍珠在1-8号。
和“右边重”的情况差不多:
第二次将2-4号拿掉,将6-8号从右边移到左边,把9-11号放在右边。就是说,把1,6,7,8放在左边,5,9,10,11放在右边。
2.1 - 如果右重则特殊珍珠在拿到左边的6-8号,且比标准珍珠轻。 第三次将6号放在左边,7号放在右边。 a.如果右重则6号是特殊珍珠且比标准珍珠轻; b.如果平衡则8号是特殊珍珠且比标准珍珠轻; c.如果左重则7号是特殊珍珠且比标准珍珠轻。
2.2 - 如果左重则特殊珍珠在没有被触动的1,5号。如果是1号,则它比标准珍珠重;如果是5号,则它比标准珍珠轻。 第三次将1号放在左边,2号放在右边。 a.这次不可能右重。 b.如果平衡则5号是特殊珍珠且比标准珍珠轻; c.如果左重则1号是特殊珍珠且比标准珍珠重。
2.3 - 如果平衡则特殊珍珠在被拿掉的2-4号,且比标准珍珠重。 第三次将2号放在左边,3号放在右边。 a.如果右重则3号是特殊珍珠且比标准珍珠重; b.如果平衡则4号是特殊珍珠且比标准珍珠重; c.如果左重则2号是特殊珍珠且比标准珍珠重。
总结:其实里面有许多情况是对称的,分析起来很容易,比如第一次称时的右重和右轻,只需考虑一种就可以了,另一种完全可以比照执行。
三、如果天平平衡,则特殊珍珠在9-12号
第二次将1-3号放在左边,9-11号放在右边。
1、2、3、4 (左) --------------- 9、10、11、12 (右)
3.1 - 如果右重则特殊珍珠在9-11号且特殊珍珠较重。接下来只需要分辨9~10号中较重的一颗,很简单:第三次将9号放在左边,10号放在右边。 a.如果右重则10号是特殊珍珠且比标准珍珠重; b.如果平衡则11号是特殊珍珠且比标准珍珠重; c.如果左重则9号是特殊珍珠且比标准珍珠重。
3.2 - 如果左重则特殊珍珠在9-11号且特殊珍珠较轻。 接下来只需要分辨9~10号中较轻的一颗,很简单:第三次将9号放在左边,10号放在右边。 a.如果右重则9号是特殊珍珠且比标准珍珠轻; b.如果平衡则11号是特殊珍珠且比标准珍珠轻; c.如果左重则10号是特殊珍珠且比标准珍珠轻。
3.3 - 如果平衡则特殊珍珠为12号。接下来只需要确定12号是较重还是较轻,很简单: 第三次将1号放在左边,12号放在右边。 a.如果右重则12号是特殊珍珠且比标准珍珠重; b.这次不可能平衡; c.如果左重则12号是特殊珍珠且比标准珍珠轻。
智力测试题(二):
某个岛上有座宝藏,你看到大中小三个岛民,你知道大岛民知道宝藏在山上还是山下,但他有时说真话有时说假话,只有中岛民知道大岛民是在说真话还是说假话, 但中岛民自己在前个人说真话的时候才说真话,前个人说假话的时候就说假话,这两个岛民用举左或右手的方式表示是否,但你不知道哪只手表示是,哪只手表示 否,只有小岛民知道中岛民说的是真还是假,他用语言表达是否,他也知道左右手表达的意思。但他永远说真话或永远说假话,你也不知道他是这两种类型的哪一 种,你能否用最少的问题问出宝藏在山上还是山下?(提示:如果你问小岛民宝藏在哪,他会反问你怎么才能知道宝藏在哪?等于白问一句)
zollty给出的答案:
用三个问题就可以推理出宝藏的下落。策略如下:
1. 问小岛民:如果中岛民举左手,则他是在说真话吗?回答(A.是,B.否)
2. 问大岛民:宝藏在山上吗?举手(A.左,B.右)
3. 问中岛民:大岛民刚才说的是真话吗?举手(A.左,B.右)
这三个问题,得到的答案有8种可能:AAA,AAB,ABA,ABB,BAA,BAB,BBA、BBB。
以BBB为例,则可推出宝藏在山上(其他答案可类似推出,推理如下)
推理:根本任务是判断小岛民是否说谎。但我们无法直接判断,只能间接判断,因此
1. 先假设“小岛民说的是真话”:由答案BBB分别知,小岛民:{“中岛民举左手则他是在说假话”,中岛民:“举左手代表否,右手代表真”},中岛民:{“中岛民表示大岛民说的是真话”},大岛民:{“大岛民表明宝藏在山上”}
推理 -> 中岛民说真话,则根据中岛民的话得知:大岛民也说真话,则根据大岛民的话,推出宝藏在山上,整个推理顺理成章!符合题目中所说的:中岛民自己在前个人说真话的时候才说真话,前个人说假话的时候就说假话。
2. 假设“小岛民说的是假话”:由答案BBB分别知,小岛民:{“中岛民举左手则他是在说真话”,“举左手代表是,右手代表否”},中岛民:{“中岛民表示大岛民说的是假话”},大岛民:{“大岛民表明宝藏不在山上,即宝藏在山下”}
推理 -> 中岛民说假话,则根据中岛民的话得知:大岛民也说假话,则根据大岛民的话,推出宝藏在山下。但是 根据题目中的描述:中岛民自己在前个人说真话的时候才说真话,前个人说假话的时候就说假话。
因此,如果大岛民说了假话,那么中岛民也应该说假话,也就是说,中岛民在问及“大岛民刚才说的是真话吗?”时,中岛民应该回答Yes,根据小岛民的描述,中岛民应该举左手才代表Yes,但是他却举的右手。所以假设和实际情况矛盾。因此这个假设不成立。
综上可知,只有假设1是顺理成章的,也就是说 小岛民说的是真话,中岛民也说真话,大岛民也说真话,宝藏在山上。