问5个问题问出一个人的生日,对方只回答对或错

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:27:11
问5个问题问出一个人的生日,对方只回答对或错,要怎么问?

你的要求是没有人能够满足的

只回答对或错,就是二进制问题
一个月是28-31天,31化成二进制有5位数,所以生日的确定至少需要5个问题
一年有12个月,12化成二进制有4位数,所以生月的确定至少需要4个问题

要猜出某个人生于几日。需预先写好五张卡片:
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31;
2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31;
4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31;
8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31;
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31;

这五张卡片由上而下分别编为1号,2号,3号,4号,5号。
有了这5张卡片,你就可以猜出任何一个人的生日。方法是:你按次序把1~5号卡片给他看,问他卡片上有没有他的生日?“有”记为“1”,“没有”,则记为“0”。
例如,某人的回答是:
“1号”→“没有”→“0”
“2号”→“有”→“1”
“3号”→“有”→“1”
“4号”→“没有”→“0”
“5号”→“有”→“1”
那么他的生日就是10110.这是一个二进制的数,化成十进制就是22,所以这个人生于22日

用这个方法当然也可以猜出他生于几月。由于12=11002,故只需要1~4号卡号就可以了。

只有在很巧合的情况下 才能通过5个问题问出生日

第一种折中的方法 先问 6月前对么?若对3月前?若错10月后
就类似于这种方法 15日前 7日前 23日后

例如:
第一问6月前? 若对第二问3月前?若对第三问2月15日前?若对第四问1月23日前?若对第五问1月10日前?

情况太多变 反正就这个套路 应该问到第五题 离生日差不多了……