基于均值与中位数的竞赛录取概率计算:非组合数学解法及Python实现问询
基于均值与中位数的竞赛录取概率计算:非组合数学解法及Python实现问询
Lucas是一名学生,他参加了一场总计2876人的数学竞赛(除他外还有2875名选手),所有参赛者的排名均唯一,排名越接近1代表成绩越好。他的最终排名是1947,这个排名有机会让他获得某所学校的录取资格。
为了估算自己能拿到梦校录取的概率,他查阅了去年的竞赛录取数据,整理出以下关键信息:
- 去年竞赛总人数同样为2876人
- 目标学校每年固定录取96人
- 去年录取学生的中位数排名为1060(理论上,有48名录取学生的排名≤1060,另外48名录取学生的排名≥1060)
- 学校会对录取学生的平均排名进行向上取整,去年公布的平均排名是1051,Lucas推测真实的平均排名区间为**[1051, 1052)**
核心问题
基于这些信息,能否计算出如果放在去年的录取规则下,Lucas获得录取的概率?如果可以的话,这个概率具体是多少?
个人思路与困惑
我认为这是一道组合数学方向的练习题。已知录取学生的平均排名$m$落在区间$[1051, 1052)$,我们设录取的96名学生的排名为$x_1,\dots,x_{96}$,这些排名均为$[1,2876]$范围内的不同整数,需满足:
- $x_1,\dots,x_{47} \in [1, 1059]$
- $x_{48} = 1060$
- $x_{49},\dots,x_{95} \in [1061, 2876]$
- $x_{96} \in [1, 2876]$
- $\sum x_i / 96 = m$
从组合数学的角度,理论上可以先计算满足上述求和条件的所有可能组合数,再计算其中包含排名1947(且1947属于$x_{49},\dots,x_{96}$中的某一个)的组合数,最后用后者除以前者得到概率。但我觉得这种计算方式过于繁琐,想知道有没有更简便、常规的解法,同时也好奇能不能用Python来实现这个计算。
补充录取规则说明
这个录取体系并非只针对单一学校。具体流程为:学校会先询问排名第1的学生是否愿意入学,如果对方同意,剩余录取名额减1,再询问下一名选手;如果对方拒绝,录取名额保持不变,直接询问下一名选手。
备注:内容来源于stack exchange,提问作者Jotadiolyne Dicci
相关产品推荐
相关产品推荐

