• 猜扑克牌


        哎,程序员面试就是伤神。各种奇葩的题都有,猜扑克牌算是个经典老题了。收藏一下,方便日后查看。

        S先生、P先生、Q先生他们知道桌子的抽屉里有16张扑克牌:红桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方块A、5。约翰教授从这16张牌中挑出一张牌来,并把这张牌的点数告诉 P先生,把这张牌的花色告诉Q先生。这时,约翰教授问P先生和Q 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?

    于是,S先生听到如下的对话:
        P先生:我不知道这张牌。
        Q先生:我知道你不知道这张牌。
        P先生:现在我知道这张牌了。
        Q先生:我也知道了。

    听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。

    请问:这张牌是什么牌?

    解题思路:
        由第一句话“P先生:我不知道这张牌。”可知,此牌必有两种或两种以上花色,即数字必定在A、Q、4、5里。(如果此牌只有一种花色,P先生知道这张牌的点数,P先生肯定知道这张牌。)

        由第二句话“Q先生:我知道你不知道这张牌。”可知,此花色牌的点数只能包括A、Q、4、5,符合此条件的只有红桃和方块。Q先生知道此牌花色,只有红桃和方块花色包括A、Q、4、5,Q先生才能作此断言。 此句排除了所有黑桃和草花,很关键。

        由第三句话“P先生:现在我知道这张牌了。”可知,P先生通过“Q先生:我知道你不知道这张牌。”判断出花色为红桃和方块,P先生又知道这张牌的点数,P先生便知道这张牌。据此,排除A,此牌必定在Q、4、5里。如果此牌点数为A,那此牌有红桃和方块两种花色,P先生还是无法判断。

        由第四句话“Q先生:我也知道了。”可知,花色只能是方块。如果是红桃,Q先生排除A后,还是无法判断是Q还是4。综上所述,这张牌是方块5。


    参考答案:
    这张牌是方块5。

  • 相关阅读:
    openSUSE字体美化
    [转摘]关于创建oracle dblink 过程的几点心得
    IList及泛型集合类转换DataTable
    C# 编码规范和编程好习惯
    随机数和随机字符串
    ThrowActivity 光阴的故事
    数据库的数据 转化为XML 在页面上浏览 光阴的故事
    EventHandlingScopeActivity 光阴的故事
    workflow 角色的使用关键 光阴的故事
    ConditionedActivityGroup 光阴的故事
  • 原文地址:https://www.cnblogs.com/codingmylife/p/2678369.html
Copyright © 2020-2023  润新知