Shoes, Socks and Gloves


Table of Contents

题目

你需要为飞往冰岛的午夜航班打包行李,但家里停电了,漆黑一片。你的衣橱里有六双鞋、六只黑袜子、六只灰袜子、六双棕色手套和六双褐色手套。不幸的是,屋里太黑,无法配对鞋子,也看不清颜色。

你至少需要拿多少只鞋、多少只袜子、多少只手套,才能确保:

  • 得到一双配对的鞋;
  • 得到两只同色的袜子;
  • 得到一双配对的手套?

分析

解决这类问题的方法,是借助鸽笼原理(Pigeonhole Principle),也就是找出最大的那个数字,而你还不能达到你要的结果。将这个数字加1就是答案。

  1. 对于鞋子来说:最坏的情况,是拿到6只鞋子,且它们都不配对。注意:鞋子是分左右的!但第7只鞋子一定可以和前面的6只配成一对!所以,答案是7
  2. 对于袜子来说:袜子不分左右。1黑1灰两只袜子不能配对。但第三只袜子肯定可以配对。所以答案是3
  3. 对于手套来说:手套也是分左右的。最坏情况是你拿了12只手套,都不配对——也就是两个颜色的手套各拿了6只,还都不配对。但第13只手套肯定可以了!所以答案是13

思考

本题可以延伸到扑克牌上。扑克牌有4种花色,点数有13种。

  • 需要拿多少张牌,才能保证手里有一对(pair)?答案:14张。
  • 需要拿多少张牌,才能保证手里有三条(trips)?答案:27张。保证有一对需要14张,然后最坏情况下你又拿12张但没凑出三条,所以是14+12+1=27张。或者这么算:你每种点数都有两张(13*2=26张),那么第27张肯定能凑出三条。
  • 需要拿多少张牌,才能保证手里有同花(flush)?答案:17张。最坏情况下,你4种花色拿了4张(共16张)。但第17张肯定可以凑出一个同花。
  • 需要拿多少张牌,才能保证手里有顺子?(straight)?答案:45张。这里有一个洞见:任何顺子(A2345 - TJQKA),都必须要么需要5要么需要10。最坏的情况是你拿到所有其他44张(52-2*4),但就是没有5或者10,但如果再拿一张就必然凑出一个顺子。

注意,虽然顺子最难保证拿到,其次是三条,反而同花似乎最容易拿到。但再德州扑克等游戏中,同花胜顺子,顺子胜三条啊!

Previous Next