根据离散数学中的基础逻辑和证明解决这个谜题

solve this riddle based on foundational logics and proofs in descrete mathematics

kenneth rosen 的 "Discrete Mathematics" 一书中有这个问题 每个偏远村庄的居民总是说实话或总是说谎。村民只会对游客提出的问题做出 "yes" 或 "no" 的回答。假设您是一名游览该地区的游客,来到一个岔路口。一根枝条通向你想去的遗迹;另一条树枝通向丛林深处。一个村民站在岔路口。你问村民哪一个问题可以决定走哪条路?

现在我遇到这个问题的问题是,在答案中给出了这个问题的解决方案:如果我问你正确的分支是否通向废墟,你会回答是。

但是对这个问题的回答如何帮助我确定走哪条分支,因为如果他是个骗子,即使正确的分支实际上通向废墟,他也会做出负面反应,因为他是个骗子,他有一种倾向连那个问题都答错了。

一个好问题是 "If I asked what road leads to freedom, what path would the other kind of villager point to?"

在这种情况下,两种村民都会指错路。

这是因为 "double negative",有效地用 XOR 处理他的答案会给你正确的答案。因为你知道村民们总是会做同样的事情,所以你可以利用他对自己潜在答案的了解来欺骗他给你正确的答案。

有 4 种方法可以解决这个问题。你有正确路径是正确路径的情况,也有错误路径的情况。然后你有一个村民总是说实话的情况,以及他总是说谎的情况。乘以得到 4 种组合。

  • 如果正道是正确的,村民总是说实话:
    • 如果你问他这条路对不对,他会说"Yes"(因为他说的是实话)
    • 所以他会说"Yes"对他会不会说"Yes"
    • 的问题
  • 如果正路不对,村民总是说实话:
    • 如果你问他这条路对不对,他会说"No"
    • 因此他会回答 "No" 是否会用 "Yes" 回答第一个问题。
  • 如果,另一方面,村民总是说谎,而路径是正确的:
    • 如果你问他这条路对不对,他会说"No"
    • 所以当你问他"Would you have said Yes?"时,他会撒谎,说"Yes"。
  • 如果路径不正确,村民总是撒谎:
    • 如果你问他这条路对不对,他会说"Yes"
    • 所以当你问他"Would you have said Yes?"时,他会撒谎,说"No"。

所以这是 table 中的结果:

Path      Villager      Final answer
Correct   Truth         Yes
Incorrect Truth         No
Correct   Lie           Yes
Incorrect Lie           No

如您所见,答案实际上与路径正确性相符。