By Long Luo
阿里巴巴达摩院 从 2018 年开始每年都会举办一届全球数学竞赛,之前一方面自己数学水平比较弱,另外一方面也没有报名,但一直很仰慕那些数学大神的风采。今年是第一次报名参加 2024阿里巴巴全球数学竞赛 ,上周末参加了预选赛,但遗憾的是,全部 7 道题中只有第 1,2,6 题会做,这里分享下我的解答:
Problem 1
几位同学假期组成一个小组去某市旅游. 该市有 6 座塔,它们的位置分别为 A,B,C,D,E,F 。同学们自由行动一段时间后,每位同学都发现,自己在所在的位置只能看到位于 A,B,C,D 处的四座塔,而看不到位于 E 和 F 的塔。已知:
- 同学们的位置和塔的位置均视为同一平面上的点,且这些点彼此不重合;
- 塔中任意 3 点不共线;
- 看不到塔的唯一可能就是视线被其它的塔所阻挡,例如,如果某位同学所在的位置 P 和 A,B 共线,且 A 在线段 PB 上,那么该同学就看不到位于 B 处的塔。
(5 分) 请问 这个旅游小组最多可能有多少名同学?
A.3
B.4
C.6
D.12
Solution
这道题选 C ,最多只能有 C42=6 名同学。
[!TIP]
这道题的解题思路是,从只有 1 座塔开始,一直到 6 座塔,找到思路。
-
假设有 1 座塔 A ,那么很显然有无数多同学可以看到塔 A ,也可以有无数多同学看不到塔 A ;
-
假设有 2 座塔 A,B ,那么只有以 A 为起点的射线 AB 且位于 B 之后的同学无法看到塔 A ;
-
假设有 3 座塔 A,B,C ,同理可知存在无数位同学至少可以看见 2 座塔;
-
假设有 4 座塔 A,B,C,D ,同理可知存在无数位同学至少可以看见 2 座塔;
-
假设有 6 座塔 A,B,C,D,E,F ,如果每位同学都无法看见 E,F 塔,如下图1 所示:

所以至多有 6 位同学位于 M,N,O,P,R,Q 处,无法看到塔 E,F 。
Problem 2
小明玩战机游戏。初始积分为 2 。在游戏进行中,积分会随着时间线性地连续减少 (速率为每单位时间段扣除 1 )。游戏开始后,每隔一个随机时间段 (时长为互相独立的参数为 1 的指数分布),就会有一架敌机出现在屏幕上。当敌机出现时,小明立即进行操作,可以瞬间击落对方,或者瞬间被对方击落。如被敌机击落,则游戏结束。如小明击落敌机,则会获得 1.5 个积分,并且可以选择在击落该次敌机后立即退出游戏,或者继续游戏。如选择继续游戏,则须等待到下一架敌机出现,中途不能主动退出。游戏的难度不断递增:出现的第 n 架敌机,小明击落对方的概率为 (0.85)n ,被击落的概率为 1−(0.85)n ,且与之前的事件独立。在任何时刻,如果积分降到 0 ,则游戏自动结束。
第 1 问
小问 1(5分) 如果游戏中,小明被击落后,其之前的积分保持。那么为了游戏结束时的累积积分的数学期望最大化,小明应该在其击落第几架敌机后主动结束游戏?
A.1
B.2
C.3
D.4
Solution
[!TIP]
这道题考察的就是泊松过程,数学好的同学推出其表达式,然后计算可得。但我数学较弱,写程序模拟其过程,代码如下所示:
public class WarPlaneGame {
private static Random random = new Random();
private static double getExpectScore(int planes) {
double score = 2;
for (int i = 0; i < planes; i++) {
double waitTime = -Math.log(1 - random.nextDouble());
if (waitTime >= score) {
score = 0;
break;
}
score -= waitTime;
double possonPr = random.nextDouble();
double shootDownPr = Math.pow(0.85, i + 1);
if (possonPr < shootDownPr) {
score += 1.5;
} else {
break;
}
}
return score;
}
private static double simulate(int planes) {
int simulateTimes = 50000;
double scoreSum = 0.0;
for (int i = 0; i < simulateTimes; i++) {
scoreSum += getExpectScore(planes);
}
return scoreSum / simulateTimes;
}
public static void main(String[] args) {
for (int i = 1; i < 5; i++) {
double result = simulate(i);
System.out.println("Shoot down " + i + " planes, Expect Score: " + result);
}
}
}
输出如下:
Shoot down 1 planes, Expect Score: 2.2344824425425442
Shoot down 2 planes, Expect Score: 2.290207012168609
Shoot down 3 planes, Expect Score: 2.2653361024420042
Shoot down 4 planes, Expect Score: 2.187342196221392
可以看出击落第 2 架敌机后主动结束游戏,期望积分最大,所以答案选 B 。
第 2 问
小问 2(5分) 如果游戏中,小明被击落后,其之前积累的的积分会清零。那么为了游戏结束时的期望积分最大化,小明也会选择一个最优的时间主动结束游戏。请问在游戏结束时(小明主动结束游戏、或积分减到 0 ),下列哪一个选项最接近游戏结束时小明的期望积分?
A.2
B.4
C.6
D.8
Solution
[!TIP]
通过第一问,我们知道期望积分是随着次数逐渐递减的。
继续写代码模拟其过程,如下所示:
public class WarPlaneGame {
private static Random random = new Random();
private static double getExpectScore2(int planes) {
double score = 2;
for (int i = 0; i < planes; i++) {
double waitTime = -Math.log(1 - random.nextDouble());
if (waitTime >= score / 2) {
score /= 2;
break;
}
score -= waitTime;
double possonPr = random.nextDouble();
double shootDownPr = Math.pow(0.85, i + 1);
if (possonPr < shootDownPr) {
score += 1.5;
} else {
score = 0;
break;
}
}
return score;
}
private static double simulate(int planes) {
int simulateTimes = 50000;
double scoreSum = 0.0;
for (int i = 0; i < simulateTimes; i++) {
scoreSum += getExpectScore2(planes);
}
return scoreSum / simulateTimes;
}
public static void main(String[] args) {
for (int i = 1; i <= 8; i++) {
double result = simulate(i);
System.out.println("Shoot down " + i + " planes, Expect Score: " + result);
}
}
}
输出如下:
Shoot down 1 planes, Expect Score: 2.0230245088842116
Shoot down 2 planes, Expect Score: 1.7658505471404586
Shoot down 3 planes, Expect Score: 1.42047193787333
Shoot down 4 planes, Expect Score: 1.0837167796697962
Shoot down 5 planes, Expect Score: 0.8877915996251725
Shoot down 6 planes, Expect Score: 0.7556905685107955
Shoot down 7 planes, Expect Score: 0.7055539105268976
Shoot down 8 planes, Expect Score: 0.6896372679317954
可以看出最大期望积分是 2.023 左右,所以答案选 A 。
Problem 6
第 1 问
假设有一枚硬币,投掷得到正面的概率为 31 。独立地投掷该硬币 n 次,记 Xn
为其中得到正面的次数。试求 Xn 为偶数的概率在 n 趋于正无穷时的极限。
Solution
[!TIP]
当 n→∞ ,直觉告诉我们,偶数次正面出现的概率和奇数次正面出现的概率是一样的,而奇数和偶数是均匀分布的,答案应该是 21 。但这道题不是选择题也不是填空题,我们需要严谨证明这个结论!
由题意可知,设随机变量 Xn 表示在 n 次独立投掷中正面出现的次数,每次出现正面的概率为 p=31 ,则 Xn 服从参数为 (n,p) 的二项分布 ,那么 n 次独立投掷中正面出现 k 次的概率是:
\label6.1Pr(Xn=k)=(kn)pk(1−p)n−k
要求 Xn 为偶数的概率,即:
Pr(Xn is even)=Pr(Xn=0)+Pr(Xn=2)+⋯+Pr(Xn=2k,k=⌊2n⌋)=k=0∑⌊2n⌋(2kn)p2k(1−p)n−2k
带入 p=31 ,可得:
Pr(Xn is even)=k=0∑⌊2n⌋(2kn)(31)2k(32)n−2k
由 二项式定理 可知:
(x+y)n=k=0∑n(kn)xkyn−k
那么易得共轭表达式:
(x+y)n+(x−y)n(x+y)n−(x−y)n=2k=0∑⌊2n⌋x2kyn−2k=2k=0∑⌊2n⌋x2k+1yn−2k−1
可得:
Pr(Xn is even)=k=0∑⌊2n⌋(2kn)(31)2k(32)n−2k=21[(31+32)n+(31−32)n]=21[1+3n1]
故答案为:
n→∞limPr(Xn is even)=n→∞lim21[1+3n1]=21
第 2 问
某人在过年期间参加了集五福活动,在这项活动中此人每扫描一次福字,可以随机地得到五张福卡中的一张。假设其每次扫福得到五福之一的概率固定,分别为 pi∈(0,1),i=1,2,⋯,5 且 ∑i=15pi=1 ,并假设其每次扫描得到的结果相互独立。在进行了 n 次扫福之后,记 Xni,i=1,2,⋯,5 为其得到每种福卡的张数。那么求极限 limn→∞P(X2n(i),i=1,2,⋯,5 全部为偶数) 。
Solution
[!TIP]
直觉告诉我们,五种福卡每种都是偶数的事件是相互独立的。通过第一问,我们已经知道答案是 21 ,那么五种福卡每种福卡的张数都是偶数的概率就是 251=321 ,而 2n 次扫福卡的概率就是 161 。下面我们就来证明下:
由多项式定理:
(x1+x2+⋯+xm)n=α1+α2+⋯+αm=nα1,α2,⋯,αm≥0∑α1!…αm!n!x1α1…xmαm
设 ki,i=1,2,⋯,5 表示是 n 次独立扫描福卡中得到第 i 种福卡的张数,则其概率为:
Pr(Xn(i)=ki,i=1,2,⋯,5)=(k1,k2,⋯,k5n)p1k1p2k2⋯p5k5=k1!k2!⋯k5!n!p1k1p2k2⋯p5k5
观察上式可知,所求概率为多项式 (p1+p2+p3+p4+p5)n 的 p1k1p2k2⋯p5k5 项,(k1,k2,⋯,k5n) 为其系数。
和问题 1 的共轭表达式类似,我们给不同福卡添加符号位,考虑如下求和表达式:
S2n=251βi=±1∑(β1p1+β2p2+⋯+β5p5)2n
对上式进行多项式展开,可得:
S2n=251βi=±1x1+x2+⋯+x5=2n∑x1!x2!⋯x5!(2n)!β1x1β2x2⋯β5x5p1x1p2x2⋯p5x5=251x1+x2+⋯+x5=2n∑x1!x2!⋯x5!(2n)!p1x1p2x2⋯p5x5βi=±1∑β1x1β2x2⋯β5x5
考虑 ∑βi=±1x1+x2+⋯+x5=2nβ1x1β2x2⋯β5x5 ,如果存在 k∈[1,5] 使得 xk 为奇数的话,那么:
βi=±1∑β1x1β2x2⋯β5x5=βi=±1i=k∑(1xk+(−1)xk)i=k∏βixi=0
由于奇数项最终都会消去,只有偶数项 xi 才会留下来,故有:
βi=±1∑β1x1β2x2⋯βkxk=2k
那么求和表达式为:
S2n=x1+x2+⋯+xk=2nxi is even ∑x1!x2!⋯xk!(2n)!p1x1p2x2⋯pkxk=Pr{X2n(i) is all even }
因此,所求问题转化为在 X2n(i) 均为偶数情况下,当 n→∞ 时,其极限为:
n→∞limPr{X2n(i) is all even }=n→∞limS2n
因为 ∣β1p1+β2p2+⋯+β5p5∣≤1 , 所以当 n→∞ 时,只有 βi 全为 1 或者 −1 情况下,
i=1∑5βipi=1
因此,我们可以得到答案:
n→∞limPr{X2n(i) is all even }=251[(+1)2n+(−1)2n]=161
Problem 7
Solution
目前不会做!
参考文献
- Markov chain
- Binomial theorem
- Binomial distribution
- Poisson distribution
- Multinomial theorem
- Exponential distribution
个人博客链接:2024 阿里巴巴全球数学竞赛预选赛 试题解答