绑匪的扑克牌问题

2020-06-08  本文已影响0人  憨憨二师兄

2020-6-8

该问题出自慕课网讲师liuyubobobo公众号《是不是很酷》中的文章《稀奇古怪面试题又三则》

问题如下:

有一名同学突然联系 bobo 老师,因为他被绑架了!绑匪说,只有做对一个问题,才能放了他!
绑匪在一个桌子上,放了 100 张扑克牌,其中 10 张朝上,90 张朝下。
绑匪将这名同学的眼睛蒙上。所以,这名同学无法看到哪张牌朝上,哪张牌朝下。这名同学也无法通过触觉,摸出来桌子上哪张牌朝上,哪张牌朝下。
现在,绑匪要求这名同学把桌子上的 100 张牌分成两堆儿。并且,在这两堆儿牌中,朝上的牌数量必须一致。
问,这名同学要怎么操作,才能摆脱穷凶极恶的绑匪?
提示 1:将 100 张牌分成两堆儿,每堆儿牌不一定包含 50 张牌。一堆儿 49 张牌,另一堆儿 51 张牌,也是可以的。
提示 2:虽然这名同学不能辨别每张牌的反正,但是,这名同学可以操纵这些牌。比如:他可以拿起一张牌,把它翻过来,使得如果这张牌本来为正面朝上,变成反面朝上;本来反面朝上,变成正面朝上。
提示 3:因为有提示 2,所以,最终的结果,不一定两堆儿中正面朝上的牌的数量都是 5 张牌。只要正面朝上的牌相等就可以。

今天在上班路上,看到了这个问题。思考了一段时间,得到了正解,分享下我的思路~

我的思路其实很简单,简单说就是做极端假设:

我们知道100张扑克牌中有10张朝上,90张朝下。虽然分成两摞,但是对于每一摞的扑克牌个数没有限制,并且我们可以对扑克牌任意翻转。于是乎,假定:第一摞扑克牌中包含所有朝上的10张牌,第二摞中自然而然都是朝下的牌。

为了满足两摞牌各自朝上的牌的数量一致,我们需要对第一摞牌进行翻转,因为蒙着眼,很自然而然地,我就想到,如果要满足要求,第一摞牌应该是10张,并且10张牌都是朝上的牌,如果这样,那么将第一摞牌全部进行翻转后,第一摞和第二摞牌中向上的牌的个数都是0张。

由极端情况引申到普遍情况:如果蒙着眼,将牌分成两摞,第一摞10张,第二摞90张,翻转第一摞所有的牌会出现什么情况呢?假设第一摞牌中有x张朝上的牌,那么第二摞牌就有10-x张朝上的牌;翻转第一摞所有的牌,那么第一摞朝上的牌就和第二摞朝上的牌数量一致均为10-x张,满足了绑匪的要求。

所以,答案为:将牌分成两摞,第一摞为10张,第二摞为90张,然后将第一摞所有的10张牌进行翻转,这样两摞中,向上的牌的个数为一致的~

每日积累,聚少成多,大家加油~

上一篇 下一篇

猜你喜欢

热点阅读