yulchaochow 2010-04-15 11:51
浏览 226
已采纳

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

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

  • 写回答

2条回答 默认 最新

  • fkuebukn 2010-04-15 14:52
    关注

    能找出钱和找不到出的概率明显不一样:
    第一个人有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)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿