数学杂谈:不经过x轴下方的随机行走问题

  • 数学杂谈:不经过x轴下方的随机行走问题
    • 1. 问题描述
    • 2. 问题解答
    • 3. 问题扩展

1. 问题描述

首先,我们给出这个问题的具体描述如下:

已知一个机器人初始点在原点位置,在每个单位时间内,机器人可以随机地向上或者向下行走一个单位距离。

问经过 2 n 2n 2n个单位时间后,机器人可以回到原点,且从未走到过 x x x轴下方的行走方式一共有多少种。

这个问题是从同学那边拿来的一个很有意思的题目,尤其是这个题目的解答思路,简直巧妙的不行,所以在这里记录一下做个小分享。

2. 问题解答

这道题的思路的话非常的巧妙,主要的话就是一个转化的思路。

显然,如果不考虑不能经过 x x x轴下方的限制条件,那么经过 2 n 2n 2n个单位时间之后能够回到原点的走法总数为 C 2 n n C_{2n}^{n} C2nn种。

剩下的,我们只需要求出至少经过了一次 x x x轴下方,且最终回到原点的走法总数,两者相减即可得到题目中要求的走法数目了。

这里,巧妙的地方就来了,简直妙不可言!

显然,如果经过了 x x x轴的想法,那么必有至少一次经过了点 ( x , − 1 ) (x, -1) (x,1),那么,我们在它第一次经过点 ( x , − 1 ) (x, -1) (x,1)的时候将之前的走法按照轴 y = − 1 y=-1 y=1取对称,后续走法不变,那么,对应的路线就变成了一个起点为 ( 0 , − 2 ) (0, -2) (0,2),终点为 ( 2 n , 0 ) (2n, 0) (2n,0)的路线。且不难分析,对于任意一条从 ( 0 , − 2 ) (0, -2) (0,2) ( 2 n , 0 ) (2n, 0) (2n,0)的路线,我们都可以通过相同的变换使之变成一个从 ( 0 , 0 ) (0, 0) (0,0) ( 2 n , 0 ) (2n, 0) (2n,0)的路线。

因此,两者刚好是相同的,故至少经过一次 x x x轴下方的总的走法数目就恰好为 C 2 n n − 1 C_{2n}^{n-1} C2nn1种。

而两者相减,我们即可得到从未走到过 x x x轴下方,且最终回到原点的走法总数为:

N = C 2 n n − C 2 n n − 1 N = C_{2n}^{n} - C_{2n}^{n-1} N=C2nnC2nn1

3. 问题扩展

进一步的,我们可以将问题进行进一步的拓展,考虑不经过 x x x轴下方,但是也不需要回到原点的随机行走的路线数目。

关于这部分的内容,我们倒是没有推导出一个完整的通项公式来,不过简单的迭代关系倒是不难写出来。

我们假设走了 n n n步之后满足条件的走法总数为 a n a_n an,则显然有 a 1 = 1 a_1 = 1 a1=1

下面,我们考察一下递推关系。

我们不妨设 b n b_{n} bn为走了 n n n步之后不经过 x x x轴下方且刚好回到原点的走法种数,那么根据第二小节的内容,显然有:

{ b 2 n = C 2 n n − C 2 n n − 1 b 2 n + 1 = 0 \left\{ \begin{aligned} & b_{2n} = C_{2n}^{n} - C_{2n}^{n-1} \\ & b_{2n+1} = 0 \end{aligned} \right. {b2n=C2nnC2nn1b2n+1=0

而进一步的,对于 a n a_n an,不难写出递推关系如下:

{ a 2 n = 2 a 2 n − 1 a 2 n + 1 = 2 a 2 n − b 2 n \left\{ \begin{aligned} & a_{2n} = 2 a_{2n-1}\\ & a_{2n+1} = 2 a_{2n} - b_{2n} \end{aligned} \right. {a2n=2a2n1a2n+1=2a2nb2n

不过可惜就是通项关系没求出来,不过如果要写个递推算法任意推导某一项 a n a_n an倒是也不复杂,但是这里就不展开了,实在是比较简单的编程问题……

你可能感兴趣的:(基础数学,随机行走,组合数学,递推算法,数学竞赛)