猜牌问题

来自计算思维百科
跳转至: 导航搜索
猜牌问题1.png

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 先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?P先生和Q先生开始了讨论,于是,S先生听到如下的对话:

P先生:我不知道这张牌。
Q先生:我知道你不知道这张牌。
P先生:现在我知道这张牌了。
Q先生:我也知道了。
听罢以上的对话,S先生想了一想之后,就正确地推出这张牌是什么牌。
请问:这张牌是什么牌?

解决方案

方案1-逐一对照法

将所有纸牌一一与P先生、Q先生的对话透露出的信息进行对比,并且在P、Q先生知道16张纸牌和他们分别知道的是点数和花色的情况下,检查纸牌是否符合,如果符合,那么对应的纸牌就是约翰教授挑出来的纸牌了。

假设约翰教授抽出的牌是红桃'A'

  1. 红桃A的点数为A,花色为红桃;
  2. P先生说,我不知道这张牌,意思就是他虽然知道了点数,但是没法直接推断出是哪张纸牌,说明这个点数至少有两种花色
  3. 'A',由于点数为'A'的纸牌花色还有方块,所以红桃'A'暂时符合;
  4. Q先生说,我知道你不知道这张牌,我们来解读这句话,教授告诉Q花色,Q从这花色就能知道P还不能确定纸牌的花色,说明'Q'拿到的花色是'P'不能通过点数一步就判断出来的,由于'A'不能直接推断出花色,红桃'A'暂时是符合的;
  5. P先生又说,现在我知道这张牌了,意思是,通过'Q'的话,'P'可以排除一些花色,加上他知道的点数,'P'可以确定是什么花色,因为通过点数就可以知道的花色是黑桃和草花,因此这两种排除,剩下红桃和方块。点数'A'并不能直接推断出花色,因此,这里可以判定红桃'A'不是教授挑出来的纸牌。

其他纸牌判断方法和上面类似。

运用的计算思维

逐一对照法运用的是机械式的思维方式,比较耗费时间和精力。

方案2-逻辑排除法

首先我们对16张纸牌按照点数对花色进行归类如下

序号

点数

花色

1

A

红桃

方块

 

2

Q

红桃

草花

 

3

4

红桃

草花

黑桃

4

K

草花

 

 

5

5

草花

方块

 

6

6

草花

 

 

7

J

黑桃

 

 

8

2

黑桃

 

 

9

3

黑桃

 

 

10

7

黑桃

 

 

11

8

黑桃

 

 

接着,分析P、Q的对话。

P先生:我不知道这张牌。说明从P拿到的点数是不能直接推断出花色的,根据上面的归类,排除能直接推断出来花色的点数。黄色标记的点数为可能的点数,如下图。

序号

点数

花色

1

A

红桃

方块

 

2

Q

红桃

草花

 

3

4

红桃

草花

黑桃

4

K

草花

 

 

5

5

草花

方块

 

6

6

草花

 

 

7

J

黑桃

 

 

8

2

黑桃

 

 

9

3

黑桃

 

 

10

7

黑桃

 

 

11

8

黑桃

 

 

Q先生:我知道你不知道这张牌。 由于q只知道花色,不知道点数,说明该花色包含的点数都跟其他花色重合,即不含有能够直接根据点数就可以猜出牌的花色。16张牌中草花有点数6可以直接推断出花色草花,黑桃有点数J、2、3、7、8中任意一个点数可以直接推断出花色是黑桃,因此,排除花色草花和黑桃的牌子。剩下图中黄色部分;

序号

点数

花色

1

A

红桃

方块

 

2

Q

红桃

草花

 

3

4

红桃

草花

黑桃

5

5

草花

方块

 

P先生:现在我知道这张牌了。说明听完Q的话,P可以排除一些花色,加上点数就可以直接推断出花色了。综合第一个表和第二个表中黄色行剩下的牌,点数A是不能直接推断出来的,因此排除点数A。

序号

点数

花色

2

Q

红桃

草花

 

3

4

红桃

草花

黑桃

5

5

草花

方块

 

Q先生:我也知道了。Q先生知道的是花色,因为P说他知道这张牌了,说明P通过点数就可以推断出花色,剩下的两种花色中,点数Q和4都可以推出红桃,不符合P说的话,点数5可以直接知道花色是方块,符合对话内容,因此这张牌应该是方块5!

运用的计算思维

方案二逻辑排除法通过每一句话逐步排除不可能的情况,减少了问题的规模,转化为更小的问题,使得问题难度逐步降低,最终被轻易地解决,体现了规约的计算思维。

参考资料

CSDN社区:http://bbs.csdn.net/topics/390306324