首页
登录 | 注册

用逻辑非解决问路说谎者问题

题目:岔路口,前面有两天路,有两个人,一个人永远说真话(good),另一个人永远说假话(evil),但不知道谁说真话,谁说假话,怎么才能问道正确的路

true代表所提出问题的正解,false则代表反解

如果问一个与两个人没有关系的通用问题,由于任务的未知性,则无法判断得到的结果。

须设计一个问题,使得无论这个人是说谎还是没有,答案都是一定的。则需将两人自身都牵扯到答案得出的过程中。

good相当于一个直接输出器,evil相当于一个取反器。

现在分析一下得出答案的流程:

step1: question

step2: good(true)   evil(false)

step3:good(false)    evil(!true)

step4:output  good(false)   evil(false)

第三步很重要,两个人拿到对方的结果,在自身处理器处理后输出,导致结果相同。

可知问题是:问其中一个人,我问另一个人他会怎么说?

得到的答案为为该问题的错误状态

若问:我问另一个人真的路在哪,他会怎么说?   两个人都指向错误的路

 



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号