zoukankan      html  css  js  c++  java
  • 猜扑克牌

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

        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。

  • 相关阅读:
    HDU 1251 统计难题(字典树模板题)
    POJ 1182 食物链(带权并查集)
    FJUT 2351 T^T的图论(并查集)
    10.QT程序框架与connect
    9.正则表达式
    8.QList QMap QVariant
    7.treeview
    6.图形化列表查询显示
    5.listview(QStringList QStringListModel)
    4.QList
  • 原文地址:https://www.cnblogs.com/codingmylife/p/2678369.html
Copyright © 2011-2022 走看看