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

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

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

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

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

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

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

step1: question

step2: good(true)   evil(false)

step3:good(false)    evil(!true)

step4:output  good(false)   evil(false)

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值