题目:岔路口,前面有两天路,有两个人,一个人永远说真话(good),另一个人永远说假话(evil),但不知道谁说真话,谁说假话,怎么才能问道正确的路
true代表所提出问题的正解,false则代表反解
如果问一个与两个人没有关系的通用问题,由于任务的未知性,则无法判断得到的结果。
须设计一个问题,使得无论这个人是说谎还是没有,答案都是一定的。则需将两人自身都牵扯到答案得出的过程中。
good相当于一个直接输出器,evil相当于一个取反器。
现在分析一下得出答案的流程:
step1: question
step2: good(true) evil(false)
step3:good(false) evil(!true)
step4:output good(false) evil(false)
第三步很重要,两个人拿到对方的结果,在自身处理器处理后输出,导致结果相同。
可知问题是:问其中一个人,我问另一个人他会怎么说?
得到的答案为为该问题的错误状态
若问:我问另一个人真的路在哪,他会怎么说? 两个人都指向错误的路