这个谜题是关于随机生成凸四边形的。
你是王国里最合适的单身女子,你决定嫁给一位王子。国王邀请你去他的城堡,这样你就可以从他的三个儿子中做出选择。大王子很诚实,总是说实话。最小的王子不诚实,总是撒谎。中间王子很淘气,有时会说实话,其余时间都在撒谎。因为你将永远与其中一位王子结婚,所以你想嫁给最年长的(说真话的)或最年轻的(说谎者),因为至少你知道自己的立场。但有一个问题:你不能仅仅通过看一眼就把王子们区分开来,而国王只会给你一个“是”或“否”的问题,你只能向其中一个兄弟提问。
你能问什么“是”或“否”的问题来确保你不会嫁给中间王子?
这是我的解决方案:
[显示解决方案]
一个可能的解决方案
让我们给王子A、B和C贴上标签。问王子A这个问题:
“这个王子(指着B)比那个王子(指着C)大吗?”。
如果答案是“是”,那么嫁给C王子。
如果答案是“不”,那就嫁给B王子。
这个策略保证永远不会选择恶作剧的王子!
为什么它有效
有6种可能的方式将这三个王子分配给这三个标签。下表说明了所有六种情况下的情况。
一 |
B类 |
C类 |
B比C大吗? |
A代表什么 |
被选中的王子 |
诚实 |
不诚实的 |
恶作剧 |
不 |
不 |
不诚实的 |
诚实 |
恶作剧 |
不诚实的 |
是的 |
是的 |
不诚实的 |
不诚实的 |
诚实 |
恶作剧 |
是的 |
不 |
诚实 |
不诚实的 |
恶作剧 |
诚实 |
不 |
是的 |
诚实 |
恶作剧 |
诚实 |
不诚实的 |
是的 |
是或否 |
诚实或不诚实 |
恶作剧 |
不诚实的 |
诚实 |
不 |
是或否 |
诚实或不诚实 |
当A王子诚实时,你会尽量避开剩下的两位王子中年龄较大的一位,因为那一位很淘气。所以你想选一个年轻的。当王子A不诚实时,你会试图避开剩下的两个王子中的年轻一个,因为那一个很淘气。所以你想选择一个旧的。但不诚实的王子总是撒谎!因此,在这两种情况下,如果你选择一个据称是最年轻的,你总是会避开淘气的王子。最后,当王子A淘气的时候,他们的回答并不重要,因为你总是从剩下的两个王子中挑选一个!
理论基础
一个“是”或“否”的问题必须允许我们将三位王子分成两组。既然我们不需要区分诚实和不诚实的王子,我们可能会认为解决这个问题的方法是诚实和不忠诚的王子给出相同的答案。例如,我们可以问:“你是最年长的王子吗?”。诚实和不诚实的王子都会回答“是”。然而,问题是,淘气的王子也可以回答“是”。事实上,无论我们问什么,淘气的王子总是可以随心所欲地回应!
关键是要认识到,因为我们无法控制恶作剧的王子所说的话,所以我们需要一种永远不会选择提问者的策略。这样,如果我们碰巧和淘气的王子谈话,我们就不会做出错误的决定。这个推理链导致了上面的解决方案(而且它不是唯一的!)。