Published on

【推理题】小红的生日是几号

Authors

小红的生日是几号

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] 其中一个
 * 无法确定
 */