在面试的过程中碰到了一道题,很有意思。琢磨了几天,终于想到了答案。所以分享出来
原题内容:
有1001个盒子,其中有且只有1个事中了魔咒的盒子,任何看了中魔咒盒子的
人都会在每月1号死亡,残忍的老国王要找出这个盒子,现在已经是26号了,残忍
的老国王至少需要抓到多少人,才能在下个月1号的时候,找到这个中了魔咒的盒
子。为什么?
- 原题的表述是不严谨的!我严重怀疑出题人思路就是不清楚的。
- 需要对原题进行部分修改。
- 修改1、在图中第二行写的是“人都会在每月1号死亡”,这句话有歧义:如果1月1号,1月1号死不死?原题的表述中无法解答这个问题。所以需要把原题改为“人都会在下月1号死亡”。
- 修改2、原题中表述为“下个月1号的时候”,不准确!“时候”指的是时刻,而“1号”是一个时间范围。改为“下个月2号之前”
- 修改3、原题中表述为“中了魔咒的盒子”,说起来很别扭!我怀疑这道题是从英语翻译过来的。用中国话,直接叫“杀人盒”。
- 修改4、原题中“现在已经是26号了”,是干扰信息!需要删掉。
现在完整的问题内容为:
国王有一个杀人盒,看了杀人盒内容的人会在下月1号死亡。
国王不小心把杀人盒混在1000个盒子里了,每个盒子的重量、形状、颜色都完全相同,只能通过杀人来找出杀人盒。
你是国王的使者,国王很着急,国王命令你在下个月2号之前找到杀人盒。
请问:你最少抓多少人才能找到杀人盒?为什么?
假设:抓的都是壮年男性,不会在被逮捕期间死亡,只会因为看了杀人盒死亡。
- 我认为这道题非常有意思,强烈建议你思考一下。我用了7天才终于找到正确答案
- 我已经把我的答案写在 answer.md 中了,代码实现在 answer.c
- 再次提示:希望你思考后再看,直接看答案后你会觉得这道题索然无味!