把牌分成两堆,让每堆面朝上的牌数目相同

面试题:在一个黑暗的房间,有人塞给你一叠牌,有 N 张面朝上,其余的面朝下。你看不见牌,怎样才能把牌分成两堆,让每堆面朝上的牌数目相同呢?

求答案及详细推理过程。

先数出 N 张牌,并将其翻转,剩下的是另一堆。这两堆牌中,面朝上的牌数目相同。
推理过程:
这道谜题流行于摩根大通。现在,你可以说拿出手机来照亮,显然是合乎情理的。但事实上,这道谜题的出现时间早于手机,可以不用看牌就解决。或许可以从观察以下这些项目入手:
● 任意把牌分成两等份的做法行不通,除非你运气超级好。所有面朝上的牌都可能分在同一堆里。
● 问题中并未要求两堆牌要相等,它只要求面朝上的牌数目相等。
● 你可以翻转牌面。当然,你无法判断所翻的牌是面朝上还是面朝下。
预期的答案是这样:你从这叠牌的最上面数出 N 张牌,并将其翻转。这就是一堆,桌上剩余的牌是另一堆。
以下是它的运作原理。你数出的 N 张牌里会有任意数目的牌面朝上,从 0 到 N 都有可能。假设翻转之前有 f 张面朝上的牌,翻转会使每一张面朝上的牌面朝下,而面朝下的牌变成面朝上。因此,翻转之后,这堆牌里有 N - f 张面朝上的牌。在桌上剩下的另一堆牌里,也有( N - f )张面朝上的牌。因此,与你刚才翻转的那堆牌里面朝上的牌数目相等。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值