本文主要是介绍一个小的推理题(猜牌:一个告诉点数,一个告诉花色),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题
这张图来自贴吧,但我找不到链接了…抱歉。
我写这道题,是因为B站看到老番茄做了,然后我想搞明白是怎么回事,顺便把推理过程记录在CSDN上了。
二、推理过程
注意:我们是上帝视角。
1.a说我不知道这张牌是什么。
所以,点数必定是重复的。可选的点数有: A, J, 2, 4, 3, 8。
2.b说我早就知道你不知道(“但我还是不知道”这个信息是多余的)
所以,花色不能是“方块”和“黑桃”,以“方块”作解释,如果b拿到的是“方块”,那么并没法肯定a不知道,因为如果点数是Q,则a就知道了。所以,某花色的所有点数必须出现过至少2次,满足条件的有:红桃和梅花。
3.a说那我现在知道了
那么点数一定不能是"3"和"8",因为"3"和"8"既可以是红桃也可以是梅花, a没法知道,所以可选的点数有:A,J,4。
4.b说我也知道了
那么花色一定不能是红桃,因为符合红桃花色的既可以是"A"也可以是"4"。所以点数一定是"J"
三、结论
牌:梅花J
最关键的就是理解清楚“早就知道”
这篇关于一个小的推理题(猜牌:一个告诉点数,一个告诉花色)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!