- Published on
【推理题】小红的生日是几号
- Authors
- Name
- Zqq
小红的生日是几号
const a = null
const b = null
const times = [
['5', '15'],
['5', '16'],
['5', '19'],
['6', '17'],
['6', '18'],
['7', '14'],
['7', '16'],
['8', '14'],
['8', '15'],
['8', '17'],
]
// 前提是 A 知道索引为 0 的数字其中答案 b知道索引为1的数字其中答案
// A 说 我不知道 但b一定不知道答案
// B 说 那我知道答案是什么了
// A 说 那我也知道答案是什么了
分析第一句话
const times = [
// ["5", "15"],
// ["5", "16"],
// ["5", "19"],
// ["6", "17"],
// ["6", "18"],
['7', '14'],
['7', '16'],
['8', '14'],
['8', '15'],
['8', '17'],
]
/**
* 分析第一句话 A 说 他不知道 但是B也不知道
* 那么就可以证明 A 所拿到的数字 在B中是有重复的
* 由于 19 18 没有出现过重复 因此可以排除掉 5月 19 和 6月 18
* 如果 A 拿到的是 5 那么他无法确定 B 不知道 因为 16 和 15 都有重复
* 如果 A 拿到的是 6 他也无法确定 B 不知道 因为 17 也有重复
* 因此可以排除掉 五月 和 六月
*/
const times = [
// ["5", "15"],
// ["5", "16"],
// ["5", "19"],
// ["6", "17"],
// ["6", "18"],
// ["7", "14"],
['7', '16'],
// ["8", "14"],
['8', '15'],
['8', '17'],
]
/**
* 分析第二句话 B 说 那我知道答案是什么了
* 说明 B 所拿到的数字 在 剩下的结果中 没有重复出现过
* 那么 就排除掉 8月 14 和 7月 14
*/
const times = [
// ["5", "15"],
// ["5", "16"],
// ["5", "19"],
// ["6", "17"],
// ["6", "18"],
// ["7", "14"],
['7', '16'],
// ["8", "14"],
// ['8', '15'],
// ['8', '17'],
]
/**
* 分析第三句话 A说 那我也知道答案是什么了
* 是因为 排除掉五月和六月后 又排除了两个重复的 14
* 所以 结果只能从 7月 16 , 8 月 15 , 8月17 中选
* 那么 第一位数字只有可能是 7 所以 答案是 7月 16日
*/
进阶版
const times = [
[1, 1],
[1, 2],
[1, 3],
[2, 3],
[2, 4],
[3, 4],
[3, 5],
[4, 5],
[4, 6],
]
// A 知道索引为0的数字
// B 知道索引为1的数字
// B 说 我不知道答案 A 说 我也不知道答案
// B 说 我知道答案了 A 说 我也知道答案了
分析第一句话
const times = [
// [1, 1],
// [1, 2],
// [1, 3],
[2, 3],
[2, 4],
[3, 4],
[3, 5],
// [4, 5],
// [4, 6],
]
/**
* 分析第一句话
* B 不知道答案
* 那就说明 B 的结果 有重复的出现
* 所以 可以排除掉 [1,1] [1,2] [4,6]
* A 也不知道答案
* 那就说明 A 的结果 也有重复的出现
* 所以 可以排除掉 [1,3] [4,5]
*/
分析第二句话
const times = [
// [1, 1],
// [1, 2],
// [1, 3],
[2, 3],
// [2, 4],
// [3, 4],
[3, 5],
// [4, 5],
// [4, 6],
]
/**
* 分析第二句话
* B 说 我知道答案了
* 说明 B 的数字 在剩余的选项中 没有重复出现
* 可以排除掉 [2,4] [3,4]
* A 说 我也知道答案了 同理
* 所以 结果只能是 [2,4] 和 [3,4] 其中一个
* 无法确定
*/