• 推理题:猜扑克牌


    有人从一手纸牌中选定一张牌,他把这张牌的花色告诉X先生,而把点数告诉了Y先生,两位先生都知道这手纸牌是:

    黑桃      J、8、4、2;

    红心  A、Q、4;

    方块  A、5;

    草花  K、Q、5、4。

    X先生和Y先生都很精通逻辑,很善于推理。他们之间有对话如下:

    Y先生:我不知道这张牌。

    X先生:我知道你不知道这张牌。

    Y先生:现在我知道这张牌了。

    X先生:现在我也知道了。

           黑桃 J   8   4   2
           红心 A   Q   4
           方块 A   5
           草花 K   Q   4   5
    
    Y知道点数,但说不知道这牌,所以符合该点数的牌一定有几种花色存在,A。Q。4。5都有可能
    X知道花色,并说确定Y不知道这牌,是因为在X所知道的花色里面,每一张牌的点数在其他的花色里面都有。因此排除 黑桃 和 草花。
    (反例:如果X得到的提示是草花,那么可能存在草花K,整副牌只有一张K,因此不可能知道Y先生无法确定,同理排除黑桃) Y说,现在我知道了,说明Y所知道的点数,在红心和方块里面是唯一存在的,排除红心A和方块A。 X说,我现在也知道了,说明排除了A后,该牌是X所知道的花色里面剩下的唯一一张牌,符合的只有方块5。

    还是不理解的参考这篇解释:

    第一步
    对X来说:
    黑桃:J 8 4 2
    红桃:A Q 4
    方块:A 5
    草花:K Q 5 4
     
    对Y来说
    2 黑桃
    4 红桃 草花
    5 方块 草花
    8 黑桃
    J 黑桃
    Q 红桃 梅花
    K 梅花
    A 红桃 方块
     
    第二步:
    Y先生:我不知道这张牌
     
    可以排除花色单张的,因为只有单张的话Y肯定就知道了。
    排除:黑桃2、 黑桃8、黑桃J、草花K
    注意到:这里是黑桃和草花的
     
    第三步:
    X先生:我知道你不知道这张牌
     
    (这句话很容易误解,很容易理解成:“我现在知道你不知道这张牌”,这里完全是对刚开始说的,应该理解成:“我本来就知道你不知道这张牌”,出题句子也不说清楚些)
    如果有单张的话,Y肯定就知道这牌了,既然X知道Y不知道是什么牌,那么说明牌的花色肯定不是单张里面的,排除了刚刚出来的黑桃和草花(第二步排除的)
     
    再一次排除黑桃和草花之后,所以现在的牌就有:
     
    对于X
    红桃:A Q 4
    方块:A 5
     
    对于Y
    A:红桃、方块
    Q: 红桃
    5:方块
    4:红桃
     
    第四步:
    Y:我现在知道那张牌了
     
    对于上面那个结果,双方已经是心知肚明,很明显,如果是点数是A的时候,Y肯定不知道是哪个花色(因为不是单张),所以排除了红桃A、方块A
    所以现在的结果是:
    对于X
    红桃: Q 4
    方块: 5
     
    第五步:
    X先生:现在我也知道了
     
    聪明的X先生马上意识到Y是一个多嘴的人,在最后的时刻出卖了自己(突然想到了《教父》),让别人看出来自己在想什么。
    答案已经很明显,既然Y已经知道了,那说明点数肯定是唯一的,花色肯定是单张的。
     
    所以,答案是:
    方块5

    现学现卖(小测试一下吧!)

    answer:black three

  • 相关阅读:
    golang linux安装
    vscode 插件
    windows访问eks pods
    go mod包管理
    beego创建项目
    Atcoder ARC-125
    AtCoder AGC003 简要题解
    Python 字符串转成变量名
    13_Go基础(binary)
    12_Go基础(iota)
  • 原文地址:https://www.cnblogs.com/zjfjava/p/6601069.html
Copyright © 2020-2023  润新知