在骑士和流氓岛上,骑士只能说真话,流氓只能说假话。这让日常生活变得糟糕透顶,因为没有人能真正撒谎。黑手党游戏在五秒钟内结束。
因此骑士和流氓会用小技巧说话。他们不会直接说出陈述P,而是将P嵌入公式句子中。最著名的小技巧是
如果你问我,我会说P。
只要P为真,骑士和流氓都可以说这句话。说这句话会“泄露” P的值。相比之下,小工具
P为真或者我是一个骑士。
无论P的真值如何,骑士都可以说这句话,而只有当P为假时,骑士才能说这句话。因此,如果你后来发现P为真,你就可以肯定说话者是骑士。
该岛委员会正在寻找一种具有以下所有属性的小工具:
- 任何人都可以用它来表示P或!P,无论他们是骑士还是流氓(他们的“阵营”)。
- 即使您知道说话者的排列方式,您也无法确定P是真还是假。
- 即使您知道P的值,也无法确定扬声器的对齐方式。
该小工具的使用应该易于使用和可扩展:无需要求岛上的每个人都记住私钥!
\endgroup
2
最佳答案
4
与 Kagami 的想法相同,但具有仅包含 P 一次的潜在优势:
如果我是个流氓,那么 P 和猪都会飞!
解释
虽然这有点奇怪,但从逻辑上讲,如果 A 为假,那么“如果 A,则 B”形式的陈述将自动为真。因此骑士总是可以做出这样的陈述。由于“P 和猪都会飞”为假,因此陈述为“如果为真,则为假”,这对于流氓来说是假的,因此流氓也可以这样说。由于骑士或流氓总是可以这样说,因此我们无法了解陈述的真实性或个人的地位。
\endgroup
3
-
2\begingroup
我认为更好的答案是“我是一名骑士,P 是一种话语”,这样这些善良的人也能够传达那些没有明确真实性的事情。
\endgroup
– -
\begingroup
说得好。我刚刚意识到“我是一名骑士,(P ot true)有效”,但你的更好。
\endgroup
– -
1\begingroup
(+1) 我本来要回答“Rvgure V nz n Xavtug naq V nz n Xanir naq C, be V nz n Xavtug”,但你的回答是等效的(而且措辞得很好)。
\endgroup
–
|
我是一名骑士,并且(P 或非 P)
\endgroup
|
- 根据国家法律
我们知道,如果小工具
g(is_knight, predicate_is_true)
要说出这些语句,它必须构建对骑士来说为真、对杰克来说为假的语句。
- 任何人都可以用它来表示 P 或 !P,无论他们是骑士还是流氓(他们的“阵营”)。
因此下面的每个组合都必须是可说的。
g(true,true) == true g(true,false) == true g(false,true) == false g(false,false) == false
- 即使您知道说话者的排列方式,您也无法确定 P 是真还是假。
从上文我们就已经知道这一点了
g(x, true) == g(x, false)
。
- 即使您知道 P 的值,也无法确定扬声器的对齐方式。
我们已经从上面得到了后半部分
g(x, true) == g(x, false)
,P 对陈述没有影响。由于我们要求g(x, *)
不披露有关 的任何新信息x
,因此它必须始终为真,始终为假,或者是关于 的陈述x
。
但是,由于我们已经要求
g(true, *) == true
和g(false, *) == false
,它不能是常数,而被迫为g(x) = x
。
把所有这些放在一起,唯一的陈述就是……
… 完全忽略 P(要么省略它,要么使它成为同义反复),并简化为
x
,例如I am a knight
,I am not a knave
,I tell the truth
。如果我们想要一个令人满意的答案,并且以有意义的方式使用 P 一次,我们似乎在设计上运气不佳。
\endgroup
2
-
1\begingroup
但这不违背条件 3 吗?
\endgroup
– -
1\begingroup
这个答案的大部分内容 +1 — 一个彻底的论证,即如果小工具是 P 和对齐的某种逻辑函数,那么它的真值必须等同于 rot13(“V nz n xavtug”),并且独立于 P。但你的最终结论是错误的 — 小工具话语旨在传达陈述 P,因此它必须在语法上包含 P,如要求 (1) 所述;但这与其真值独立于 P 并不矛盾,正如其他答案所示。所以我们不是“设计上的运气不佳”。
\endgroup
–
|
从更有创意的角度来看,这款新产品可能是:
(是的,你没看错)
解释:
小玩意没有最小长度限制,所以从技术上讲,骑士和小偷都可以选择不回应。同样,这是一种更有创意的方法,不一定是完美的答案 🙂
这意味着:
- 任何人都可以使用/说这个小工具,并且P或!P仍然可能是真的。
- 即使知道说话者的排列方式,也无法确定P是真还是假。
- 即使知道P的值,也无法确定扬声器的对齐情况。
\endgroup
|
“说 P 或 !P” 似乎定义不明确。这是否意味着“P”嵌入在语句中?或者“P 是 ___”嵌入在语句中?或者“P”在语句中并且可以为真或为假?
\endgroup
–
@Cireo 我的理解是,P 代表问题的正确答案。例如,如果有人问“天空是红色的吗”,那么回答“否”将充当 P,而回答“是”将充当 !P(假设天空实际上不是红色的)。
\endgroup
–
|