2024 阿里巴巴全球数学竞赛预选赛 试题解答

482 阅读3分钟

By Long Luo

阿里巴巴达摩院 从 2018 年开始每年都会举办一届全球数学竞赛,之前一方面自己数学水平比较弱,另外一方面也没有报名,但一直很仰慕那些数学大神的风采。今年是第一次报名参加 2024阿里巴巴全球数学竞赛 ,上周末参加了预选赛,但遗憾的是,全部 77 道题中只有第 1,2,61, 2, 6 题会做,这里分享下我的解答:

Problem 1

几位同学假期组成一个小组去某市旅游. 该市有 66 座塔,它们的位置分别为 A,B,C,D,E,FA, B, C, D, E, F 。同学们自由行动一段时间后,每位同学都发现,自己在所在的位置只能看到位于 A,B,C,DA, B, C, D 处的四座塔,而看不到位于 EEFF 的塔。已知:

  1. 同学们的位置和塔的位置均视为同一平面上的点,且这些点彼此不重合;
  2. 塔中任意 33 点不共线;
  3. 看不到塔的唯一可能就是视线被其它的塔所阻挡,例如,如果某位同学所在的位置 PPA,BA , B 共线,且 AA 在线段 PBPB 上,那么该同学就看不到位于 BB 处的塔。

(5 分) 请问 这个旅游小组最多可能有多少名同学?

A.3A. 3
B.4B. 4 C.6C. 6 D.12D. 12

Solution

这道题选 CC ,最多只能有 C42=6C_{4}^{2} = 6 名同学。

[!TIP] 这道题的解题思路是,从只有 11 座塔开始,一直到 66 座塔,找到思路。

  1. 假设有 11 座塔 AA ,那么很显然有无数多同学可以看到塔 AA ,也可以有无数多同学看不到塔 AA​ ;

  2. 假设有 22 座塔 A,BA, B ,那么只有以 AA 为起点的射线 ABAB 且位于 BB 之后的同学无法看到塔 AA

  3. 假设有 33 座塔 A,B,CA, B, C ,同理可知存在无数位同学至少可以看见 22 座塔;

  4. 假设有 44 座塔 A,B,C,DA, B, C, D ,同理可知存在无数位同学至少可以看见 22 座塔;

  5. 假设有 66 座塔 A,B,C,D,E,FA, B, C, D, E, F ,如果每位同学都无法看见 E,FE, F 塔,如下图1 所示:

图1. Solution of Problem 1

所以至多有 66 位同学位于 M,N,O,P,R,QM, N, O, P, R, Q 处,无法看到塔 E,FE, F

Problem 2

小明玩战机游戏。初始积分为 22 。在游戏进行中,积分会随着时间线性地连续减少 (速率为每单位时间段扣除 11 )。游戏开始后,每隔一个随机时间段 (时长为互相独立的参数为 11 的指数分布),就会有一架敌机出现在屏幕上。当敌机出现时,小明立即进行操作,可以瞬间击落对方,或者瞬间被对方击落。如被敌机击落,则游戏结束。如小明击落敌机,则会获得 1.51.5 个积分,并且可以选择在击落该次敌机后立即退出游戏,或者继续游戏。如选择继续游戏,则须等待到下一架敌机出现,中途不能主动退出。游戏的难度不断递增:出现的第 nn 架敌机,小明击落对方的概率为 (0.85)n(0.85)^n ,被击落的概率为 1(0.85)n1 - (0.85)^n ,且与之前的事件独立。在任何时刻,如果积分降到 00 ,则游戏自动结束。

第 1 问

小问 1(5分) 如果游戏中,小明被击落后,其之前的积分保持。那么为了游戏结束时的累积积分的数学期望最大化,小明应该在其击落第几架敌机后主动结束游戏?

A.1A. 1 B.2B. 2 C.3C. 3 D.4D. 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

可以看出击落第 22 架敌机后主动结束游戏,期望积分最大,所以答案选 BB

第 2 问

小问 2(5分) 如果游戏中,小明被击落后,其之前积累的的积分会清零。那么为了游戏结束时的期望积分最大化,小明也会选择一个最优的时间主动结束游戏。请问在游戏结束时(小明主动结束游戏、或积分减到 00 ),下列哪一个选项最接近游戏结束时小明的期望积分?

A.2A. 2
B.4B. 4 C.6C. 6 D.8D. 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.0232.023 左右,所以答案选 AA

Problem 6

第 1 问

假设有一枚硬币,投掷得到正面的概率为 13\frac{1}{3} 。独立地投掷该硬币 nn 次,记 XnX_n 为其中得到正面的次数。试求 XnX_n 为偶数的概率在 nn 趋于正无穷时的极限。

Solution

[!TIP] 当 nn \to \infty ,直觉告诉我们,偶数次正面出现的概率和奇数次正面出现的概率是一样的,而奇数偶数是均匀分布的,答案应该是 12\frac{1}{2} 。但这道题不是选择题也不是填空题,我们需要严谨证明这个结论!

由题意可知,设随机变量 XnX_n 表示在 nn 次独立投掷中正面出现的次数,每次出现正面的概率为 p=13p = \frac{1}{3} ,则 XnX_n 服从参数为 (n,p)(n, p) 的二项分布 ,那么 nn 次独立投掷中正面出现 kk 次的概率是:

\label6.1Pr(Xn=k)=(nk)pk(1p)nk\begin{equation} \label{6.1} \operatorname{Pr}(X_n = k) = \binom{n}{k} p^k (1−p)^{n−k} \end{equation}

要求 XnX_n 为偶数的概率,即:

Pr(Xn is even)=Pr(Xn=0)+Pr(Xn=2)++Pr(Xn=2k,k=n2)=k=0n2(n2k)p2k(1p)n2k\begin{aligned} \operatorname{Pr}(X_n \text { is even}) & = \operatorname{Pr}(X_n=0) + \operatorname{Pr}(X_n=2) + \cdots + \operatorname{Pr}(X_n = 2k, k = \left \lfloor \frac{n}{2} \right \rfloor ) \\ & = \sum_{k=0}^{\left \lfloor \frac{n}{2} \right \rfloor} \binom{n}{2k} p^{2k} (1−p)^{n−2k} \end{aligned}

带入 p=13p = \frac{1}{3} ,可得:

Pr(Xn is even)=k=0n2(n2k)(13)2k(23)n2k\operatorname{Pr}(X_n \text { is even}) = \sum_{k=0}^{\left \lfloor \frac{n}{2} \right \rfloor} \binom{n}{2k} (\frac{1}{3})^{2k} (\frac{2}{3})^{n−2k}

由 二项式定理 可知:

(x+y)n=k=0n(nk)xkynk(x + y)^n = \sum_{k=0}^{n} \binom{n}{k} x^k y^{n−k}

那么易得共轭表达式:

(x+y)n+(xy)n=2k=0n2x2kyn2k(x+y)n(xy)n=2k=0n2x2k+1yn2k1\begin{aligned} (x + y)^n + (x − y)^n & = 2 \sum_{k=0}^{\left \lfloor \frac{n}{2} \right \rfloor} x^{2k}y^{n - 2k} \\ (x + y)^n - (x − y)^n & = 2 \sum_{k=0}^{\left \lfloor \frac{n}{2} \right \rfloor} x^{2k + 1}y^{n - 2k - 1} \end{aligned}

可得:

Pr(Xn is even)=k=0n2(n2k)(13)2k(23)n2k=12[(13+23)n+(1323)n]=12[1+13n]\begin{aligned} \operatorname{Pr}(X_n \text { is even}) & = \sum_{k=0}^{\left \lfloor \frac{n}{2} \right \rfloor} \binom{n}{2k} (\frac{1}{3})^{2k} (\frac{2}{3})^{n−2k} \\ & = \frac{1}{2}[(\frac{1}{3} + \frac{2}{3})^n + (\frac{1}{3} - \frac{2}{3})^n] \\ & = \frac{1}{2}[1 + \frac{1}{3^n}] \end{aligned}

故答案为:

limnPr(Xn is even)=limn12[1+13n]=12\lim_{n \to \infty} \operatorname{Pr}(X_n \text { is even}) = \lim_{n \to \infty} \frac{1}{2} \left [ 1 + \frac{1}{3^n} \right ] = \frac{1}{2}

第 2 问

某人在过年期间参加了集五福活动,在这项活动中此人每扫描一次福字,可以随机地得到五张福卡中的一张。假设其每次扫福得到五福之一的概率固定,分别为 pi(0,1),i=1,2,,5p_i \in (0, 1) , i = 1, 2, \cdots , 5i=15pi=1\sum_{i = 1}^{5} p_i = 1 ,并假设其每次扫描得到的结果相互独立。在进行了 nn 次扫福之后,记 Xni,i=1,2,,5X^{i}_n, i =1, 2, \cdots, 5 为其得到每种福卡的张数。那么求极限 limnP(X2n(i),i=1,2,,5 全部为偶数)\lim _{n \to \infty} \operatorname{P} \left ( X^{(i)}_{2n}, i = 1, 2, \cdots, 5 \text { 全部为偶数} \right )

Solution

[!TIP] 直觉告诉我们,五种福卡每种都是偶数的事件是相互独立的。通过第一问,我们已经知道答案是 12\frac{1}{2} ,那么五种福卡每种福卡的张数都是偶数的概率就是 125=132\frac{1}{2^5} = \frac{1}{32} ,而 2n2n 次扫福卡的概率就是 116\frac{1}{16}​ 。下面我们就来证明下:

由多项式定理:

(x1+x2++xm)n=α1+α2++αm=nα1,α2,,αm0n!α1!αm!x1α1xmαm\left (x_{1} + x_{2} + \cdots + x_{m} \right)^{n} = \sum _{\begin{array}{c} \alpha _{1} + \alpha _{2} + \cdots + \alpha _{m} = n \\ \alpha _{1},\alpha _{2},\cdots ,\alpha _{m} \geq 0 \end {array}}{ \frac {n!}{\alpha _{1}! \dots \alpha _{m}!}}x_{1}^{\alpha _{1}} \dots x_{m}^{\alpha _{m}}

ki,i=1,2,,5k_i, i = 1,2, \cdots ,5 表示是 nn 次独立扫描福卡中得到第 ii 种福卡的张数,则其概率为:

Pr(Xn(i)=ki,i=1,2,,5)=(nk1,k2,,k5)p1k1p2k2p5k5=n!k1!k2!k5!p1k1p2k2p5k5\begin{aligned} \operatorname{Pr} \left (X_{n}^{(i)} = k_i, i=1,2, \cdots ,5 \right) &= \binom {n}{k_1, k_2, \cdots, k_5} p_1^{k_1} p_2^{k_2} \cdots p_5^{k_5} \\ & = \frac {n!}{k_1!k_2! \cdots k_5!} p_1^{k_1} p_2^{k_2} \cdots p_5^{k_5} \end{aligned}

观察上式可知,所求概率为多项式 (p1+p2+p3+p4+p5)n\left (p_1 + p_2 + p_3 + p_4 + p_5 \right )^{n}p1k1p2k2p5k5p_1^{k_1} p_2^{k_2} \cdots p_5^{k_5}​ 项,(nk1,k2,,k5)\binom {n}{k_1, k_2, \cdots , k_5} 为其系数。

和问题 11 的共轭表达式类似,我们给不同福卡添加符号位,考虑如下求和表达式:

S2n=125βi=±1(β1p1+β2p2++β5p5)2nS_{2n} = \frac{1}{2^{5}} \sum_{\beta_{i} = \pm 1} \left (\beta_{1} p_{1} + \beta_{2} p_{2} +\cdots + \beta_{5} p_{5} \right)^{2n}

对上式进行多项式展开,可得:

S2n=125βi=±1x1+x2++x5=2n(2n)!x1!x2!x5!β1x1β2x2β5x5p1x1p2x2p5x5=125x1+x2++x5=2n(2n)!x1!x2!x5!p1x1p2x2p5x5βi=±1β1x1β2x2β5x5\begin{aligned} S_{2n} & = \frac{1}{2^{5}} \sum_{\substack {\beta_{i} = \pm 1 \\ x_{1} + x_{2} + \cdots + x_{5} = 2n}} \frac{(2n)!}{x_{1}!x_{2}! \cdots x_{5}!} \beta{1}^{x_{1}} \beta_{2}^{x_{2}} \cdots \beta_{5}^{x_{5}} p_{1}^{x_{1}} p_{2}^{x_{2}} \cdots p_{5}^{x_{5}} \\ & = \frac{1}{2^{5}} \sum_{x_{1} + x_{2} + \cdots + x_{5} = 2n} \frac{(2n)!}{x_{1}!x_{2}! \cdots x_{5}!} p_{1}^{x_{1}} p_{2}^{x_{2}} \cdots p_{5}^{x_{5}} \sum_{\beta_{i} = \pm 1} \beta_{1}^{x_{1}} \beta_{2}^{x_{2}} \cdots \beta_{5}^{x_{5}} \end{aligned}

考虑 βi=±1x1+x2++x5=2nβ1x1β2x2β5x5\sum _{\substack {\beta_{i} = \pm 1 \\ x_{1} + x_{2} + \cdots + x_{5} = 2n}} \beta_{1}^{x_{1}} \beta_{2}^{x_{2}} \cdots \beta_{5}^{x_{5}} ,如果存在 k[1,5]k \in \left [1, 5 \right ] 使得 xkx_{k}奇数的话,那么:

βi=±1β1x1β2x2β5x5=βi=±1ik[(1xk+(1)xk)ikβixi]=0\sum_{\beta_{i} = \pm 1} \beta_{1}^{x_{1}} \beta_{2}^{x_{2}} \cdots \beta_{5}^{x_{5}} = \sum_{\substack {\beta_{i}= \pm 1 \\ i \neq k}}\left [\left (1^{x_{k}} + (-1)^{x_{k}} \right) \prod_ {i \neq k} \beta_{i}^{x_{i}} \right ]=0

由于奇数项最终都会消去,只有偶数项 xix_{i} 才会留下来,故有:

βi=±1β1x1β2x2βkxk=2k\sum_{\beta_{i} = \pm 1} \beta_{1}^{x_{1}} \beta_{2}^{x_{2}} \cdots \beta_{k}^{x_{k}} = 2^{k}

那么求和表达式为:

S2n=x1+x2++xk=2nxi is even (2n)!x1!x2!xk!p1x1p2x2pkxk=Pr{X2n(i) is all even }\begin{aligned} S_{2n} & = \sum_{\substack{x_{1} + x_{2} + \cdots + x_{k} = 2 n \\ x_{i} \text { is even }}} \frac{(2 n)!}{x_{1}!x_{2}! \cdots x_{k}!} p_{1}^{x_{1}} p_{2}^{x_{2}} \cdots p_{k}^{x_{k}} \\ & = \operatorname{Pr} \left \{ X_{2 n}^{(i)} \text { is all even } \right\} \end{aligned}

因此,所求问题转化为在 X2n(i)X_{2 n}^{(i)} 均为偶数情况下,当 nn \to \infty 时,其极限为:

limnPr{X2n(i) is all even }=limnS2n\lim _{n \to \infty} \operatorname{Pr}\left \{X_{2 n}^{(i)} \text { is all even } \right\} = \lim _{n \to \infty} S_{2 n}

因为 β1p1+β2p2++β5p51\left | \beta_{1} p_{1} + \beta_{2} p_{2} + \cdots + \beta_{5} p_{5} \right | \leq 1 , 所以当 nn \to \infty 时,只有 βi\beta_i 全为 11 或者 1-1 情况下,

i=15βipi=1\left | \sum_{i=1}^{5} \beta_{i} p_{i} \right | = 1

因此,我们可以得到答案:

limnPr{X2n(i) is all even }=125[(+1)2n+(1)2n]=116\lim _{n \to \infty} \operatorname{Pr} \left \{X_{2n}^{(i)} \text { is all even } \right \} = \frac{1}{2^{5}} \left [ (+1)^{2n} + (-1)^{2n} \right ] = \frac{1}{16}

Problem 7

Solution

目前不会做!

参考文献

  1. Markov chain
  2. Binomial theorem
  3. Binomial distribution
  4. Poisson distribution
  5. Multinomial theorem
  6. Exponential distribution

个人博客链接2024 阿里巴巴全球数学竞赛预选赛 试题解答