淘宝的笔试题,排列组合类的

淘宝的笔试题,排列组合类的

问题描述:

上学期的淘宝的笔试题:卖烧饼的,每个烧饼5元,有16个人,其中8人身上只有一张5元,另外8人身上只有一张10元。每人只买一个烧饼,老板没零钱,问:16个人有几种排队方式,不致使老板会没零钱找?
请说明具体思路和答案。只说:前面5元的人数要多于后面10元的人数,这样的答案就免了

能找出钱和找不到出的概率明显不一样:
第一个人有5元和10元的概率各为50%,但是第一个有10元的所有排列一定找不出钱,第一个人有5元的所有排列不一定都能找出钱。

楼主的题是一个典型的catalan数题,解法有很多,下举其一:
把有5元的人看作0,有10元的人看作1
16个人所有可能的排列相当于在16个数中任选8个,这8个数为1,其余8个数为0,这样总排列数为 C(8,16)
从第一个数开始,只要前2k+1(k为0~7的整数)个数中1的个数比0多,就一定找不出钱。
在第一次出现1的个数比0多时,此时一定是奇数个,1只比0多一个,将0和1对调,之后出现的数还保持不变,这样所有找不出钱的排列都可以变成9个0和7个1的排列 C(9,16),并且与9个0和7个1的所有可能排列是一一对应的。
那么所有能找出钱的排列数就为 C(8,16) - C(9,16)

数学题?16个人有几种排列方式。
能找出钱的概率跟找不出的概率一样大,结果除2即可