随机过程(B) |
您所在的位置:网站首页 › 泊松过程性质及结论 › 随机过程(B) |
上一节笔记:随机过程(A)——连续时间马尔科夫链的离出分布,到达时间。排队论模型与排队网络举例 ———————————————————————————————————— 大家好! 这一节我们会开始介绍鞅(martingale)相关的内容。鞅是一个全新的板块,但也是一个相对来说更加抽象的一个概念。前期学习鞅的时候,往往会对它“究竟有什么作用”有些迷惑,但如果一直看到后面,我们就能够发现它的强大作用。 那么我们开始吧。 目录什么叫鞅?鞅的背景:赌博问题鞅的凹凸性与正交性:上鞅为什么是“上”鞅?可选停时定理复杂情况:E(M_T) = E(M_0)? 什么叫鞅?鞅(martingale)这个字的提出,估计一开始就会让人感到迷惑。我自己对于它的理解是:拆分这个字为“革”和“央”,联合“央”是“聚拢的,收心的”意思,可以理解“鞅”表示为“收拢在心的皮带”。联想一下骑马的时候,需要拿皮鞭去驭马而行,所以这个“王者驾驭”的心态就是鞅所带来的含义。这个心态被引用在赌徒身上,赌徒也会希望自己去驾驭整个形势。因此鞅一开始提出,其实就是为了描述一个赌博的博弈模型。简单来说,具备鞅性质的赌博过程,包含了赌博输赢,输多少赢多少,怎么输怎么赢的一切信息。而如果要让鞅具备如此强大的能力,自然就需要让它具备一定的抽象性,一定的铺垫。这也会使得一开始,对于鞅的性质的介绍,相比较之前的内容可能会不太那么容易理解一些。 好的,现在我们回到统计学本身,看一下鞅究竟是如何定义的。 Definition 1: Martingale,super-Martingale,sub-Martingale 对于一个随机变量 M_n, \{X_n\}是一个随机过程。如果满足 (1) M_n仅仅与 X_0, \ldots, X_n有关。 (2) E(M_{n + 1} |X_n, \ldots, X_0) = M_n则称它是一个关于 X_n的鞅。如果第2个式子的符号为 \le,那么称它为上鞅。如果为 \ge,那么称它为下鞅。 考虑到经常被问,这里补一个概率论中的易混概念。 E(M_{n + 1} |X_n, \ldots, X_0) = M_n和下面一段 \forall x_0, \ldots, x_n, E(M_{n + 1} | X_n = x_n, \ldots, X_0 = x_0) = M_n是一个意思。 当然这个地方的话,还有个问题,就是上鞅和下鞅这两个概念,听起来也不是特别好理解。一般来说上都是“好的”,下都是“坏的”,但是在这里是正好相反的。举个例子,一般 M_n会被认为是“赌注”,那么上鞅的定义就是“下一局的赌注的期望要比上一局要少”,相当于输钱了。下鞅就是反过来,赢钱的意思。为什么和我们直观是正好相反的呢?这主要是和上调和和下调和函数(注意断句)有关。具体的我们放到之后说。 写到这里,我们再来回头看一看,为什么英文叫martingale呢?这来源于法国的一个小镇名Martique。这个小镇的居民非常小气,会根据他们下一周要花的钱,来预估这一周要花的钱。且他们下周要花的一点小钱,估计起来最有可能等于他们今天花的钱。你看,是不是和鞅的定义对上了?因此实际上来说,鞅的提出也就是为了描述一个随机过程的趋势,当然后来这个东西被各种数学家,统计学家一套整,搞出了各种乱七八糟的其他应用。当然这个要到后面才能知道,我们先不说。 为了熟悉这个定义,我们举几个例子。这些例子其实本身也是一些鞅的基础工具(就像一开始在连续时间马尔科夫链举的例子一样),可能在后面的问题中我们会经常用到他们。 Problem 1: Random Walk 考虑一个随机游走过程,即 S_n = s_0 + \sum_{k = 1}^n X_k,且 X_1, \cdots都独立同分布, E(X_i) = \mu, Var(X_i) = \sigma^2,证明 (1) S_n - n\mu是一个关于 X_n的鞅。 (2) S_n是上鞅还是下鞅,取决于 \mu的正负。 (3) (S_n - n\mu)^2 - n \sigma^2是一个关于 X_n的鞅。 这里有3个题,我们一个一个看。先看第二个题,事实上这就只需要求解 E(S_{n+1} - S_n |X_0, \ldots, X_n)这和定义是完全等价的。 这个不难,注意到 E(S_{n+1} - S_n |X_0, \ldots, X_n) = E(X_{n + 1}|X_0, \ldots, X_n) = E(X_{n + 1}) = \mu所以如果 \mu \le 0就可以看出来 S_n是一个关于 X_n的上鞅, \mu \ge 0就是一个下鞅, \mu = 0就是一个鞅。 对于第一个题,我们看一下,走定义会有 E((S_{n + 1} - (n + 1) \mu ) - (S_n - n\mu) | X_0, \ldots, X_n) = E(S_{n + 1} - S_n - \mu | X_0, \ldots, X_n) = 0所以也不难。 其实如果你是一个经验丰富的小镇做题家,你会发现可以通过这个方式来做:因为 S_n每一步迭代的时候,相比较上一次其实增加的值是一个未知数 \mu。那么很容易推出, S_n - \mu每一步迭代的时候,不会增加额外的期望值。这一句话就说明了,从 S_0开始,没迭代一步,为了抵消这个期望增加,就需要多减去一个 \mu。那么到达第 n步,就会变成 S_n - n \mu。因此 S_n - n \mu确实是一个鞅。 最后来看一下第三个题。我们一样走一个定义,可以得到 E\{[(S_{n + 1} - (n + 1) \mu)^2 - (n + 1) \sigma^2 ] - [(S_n - n \mu)^2 - n\sigma^2] | X_0, \ldots, X_n\} = E[2(S_n - n\mu)(X_{n + 1} - \mu) + (X_{ n + 1} - \mu)^2 - \sigma^2 |X_0 , \ldots ,X_n]注意到 S_n - n \mu在已知 X_0, \ldots, X_n的情况下就是一个已知的量,所以提出来,就会有 E[2(S_n - n\mu)(X_{n + 1} - \mu) + (X_{ n + 1} - \mu)^2 - \sigma^2 |X_0 , \ldots ,X_n] = 2 (S_n - n\mu)E(X_{n + 1} - \mu |X_0, \ldots, X_n) + E(X_{n + 1} - \mu)^2 - \sigma^2 = 0最后为0的原因是 E(X_{n + 1} - \mu) = 0和 E(X_{n + 1} - \mu)^2 = \sigma^2。所以第三个题我们也说明完了。 Problem 2: Product Martingale 设 X_1, X_2, \ldots为独立的随机变量,并且 E(X_i) = 1,那么 M_n = M_0 X_1, \ldots, X_n是一个关于 X_n的鞅。 要说明这个其实也不难,比上面的题反而还简单一点。注意到 E(M_{n + 1}|X_0, \ldots, X_n) =E(M_n X_{n + 1}|X_0, \ldots, X_n) = M_nE(X_{ n + 1}) = M_n这就证明了结论。 这个鞅一般会称它为乘积鞅,是因为它本质上是衡量了随机过程的乘积累积效应。 Problem 3: Exponential Martingale 设 X_1, X_2, \ldots是独立同分布的随机变量,且 \phi(\theta) = E(e^{\theta X_1}) < \infty, S_n = S_0 + \sum_{k = 1}^n X_k。那么 M_n = \exp (\theta S_n) / \phi(\theta)^n就是一个鞅。 这个鞅也有专门的名字叫指数鞅,指数鞅也有非常多的应用,也是会到后面慢慢介绍的。 验证这个东西是鞅其实和Problem 2的方法一模一样,这里就不细说了。但一个更重要的点在于它可以如何应用。比方说下面这个例子 Problem 3-2: 设 P(X_i = 1) = p, P(X_i = - 1) = 1 - p,证明 (\frac {1-p}{p})^{S_n}是一个鞅。 S_n定义如上。 这个题看似和Problem 3没什么关系,不过其实注意到,如果 \phi(\theta) = 1,这个鞅的表达式就会简单一点,所以我们可以考虑先解一下 \phi(\theta) = 1,也就是 E(e^{\theta X_1}) = e^\theta p + e^{- \theta}(1 - p) = 1解这个方程可以得到 \theta = \ln (\frac {1-p}p)。所以只需要注意到,因为 \phi(\theta) = 1的时候, e^{\theta S_n}就是一个鞅,所以这个就对应了我们的结论,也就是结论成立。 好的,到此为止,通过这个题,至少鞅怎么验证,怎么计算条件期望等等,算是比较清楚了。 鞅的背景:赌博问题我们一直说鞅其实是衡量“赌注的变化趋势”的,但是一直没说这个赌博游戏的背景是什么。在这里我们把它列为单独一个题,介绍一下这个背景。 Problem 4: 考虑一个赌博游戏,一开始的赌注为1。如果获胜,则获得赌注,且下一局的赌注重置为1。如果输了,则失去这个赌注,且下一局的赌注翻倍。假设输赢的概率相等,问这一个赌博问题是否存在好的策略。 举个例子,比方说玩了4局,第1,2局都输了,那么一共会输3块钱。第3局赢了,就会赢4块钱。第4局又赢了,就再赢1块钱,所以一共会赢2块钱。 首先一个比较重要的观察是:只要一个人获胜了,那么他一定可以净收益1(想想为什么?),所以一个很自然的推论是这个游戏是对玩家有利的,因为只要玩家赢了一次,就可以获得1的正收益。但真的是这样吗? 我们假设 N = 6,表示玩了6局。首先我们可以分析一下收益的期望。 N= 6的情况下,最多的收益就是6,这个时候的概率为 \frac 1{64},当然也可以是收益5,概率为 \frac 5 { 64},等等等等有很多情况,这里就不列了。总之如果你很感兴趣,可以算一下这些收益下对应的概率 [6, 5, 4, 3, 2, 1, 0, -1,- 2, -4, -5, -6, -13, -14, -30, -63]算出来的期望碰巧是0。所以首先可以看出的一点就是,长期来看这个游戏并没有什么收益。 接下来,我们用鞅的内容,更进一步的挖掘一些性质。定义 X_n为每一局的正负,在这里 X_n = \pm 1(至于具体赢了/输了多少,我们用专门的随机变量定义)。定义 M_n = \sum_{i = 1}^n X_n为收益的和。那么很明显这个收益是一个鞅,因为 \{X_n\}相互之间独立,且游戏公平。定义 H_n是每一次的收益,那么很明显它是由 X_1, \ldots, X_{n- 1}决定的,并且满足 H_m = 1 , 2H_{m - 1},这取决于上一局是赢了还是输了。那么最终的总的收益就是 W_n = W_0 + \sum_{ m =1}^n H_m(M_m - M_{m - 1})那么下面这个结论,可能会让赌徒伤心的抹抹眼泪,拂袖而去。 Proposition 1: 设 M_n是一个关于 X_n的鞅, H_n是一个仅仅与 X_0, \ldots, X_{n - 1}有关的量,且 0 \le H_n \le c_n,那么 W_n就是一个鞅。 这个证明本身不是很困难,走定义就可以了,注意到 E(W_{n + 1} - W_n|X_0 , \ldots, X_n) = H_{n + 1}E(M_{n + 1} - H_n |X_0 ,\ldots , X_n) = 0所以结论就成立了。 这个结论能告诉我们什么呢?我们仔细看一下会发现,对于 H_n的要求是很低的,就是说只要它是一个有限的正常数就可以有这个结论。因此只要这个条件有了,无论你的策略 H_n是什么,都没有办法改变最终的收益是一个鞅的结论。也就是说,只要这个游戏本身是公平的,你怎么耍花样,期望的收益都不会有变。 这个结论中的条件改成下鞅或者上鞅,也是可以的。比方说对于下鞅,它就相当于告诉我们:只要游戏本身是对玩家不利的,无论怎么耍花样,期望的收益都会对玩家不利。因此赌徒听到这个消息自然会痛哭流涕,毕竟除了让信息不对称以外,确实没有其他办法可以让赌博这个游戏变得如他们想的一样有趣。 鞅的凹凸性与正交性:上鞅为什么是“上”鞅?这个标题本身也很有意思,鞅和凹凸性,正交性还能有联系?事实上连矩阵论的研究都能用上各种概率统计,似乎这几个梦幻联动一下,也不是那么猎奇的事情? “上”这个字,对应的自然就是凹凸性。而正交性其实对应的是我们之前一直讨论的马尔科夫性。当然,它只是“意思上”比较接近罢了。 别急,我们来看一下这些结论究竟是什么。 Theorem 1: 设 M_n是一个鞅, \phi是一个凸函数,那么 \phi(M_n)就是一个下鞅。另外,如果 M_n是一个下鞅, \phi是一个不减的凸函数,那么 \phi(M_n)也是一个下鞅。 我们证明一下,先看第一个,如果要说明 \phi(M_n)是一个下鞅,那么自然只需要证明 E(\phi(M_{n + 1}) | X_0, \ldots, X_n) \ge \phi(M_n)那么注意到凸函数在期望中的性质 E(\phi(X)) \ge \phi(E(X)),加上条件依然也成立,所以我们会有 E(\phi(M_{n + 1}) | X_0, \ldots, X_n) \ge \phi(E(M_{n + 1} | X_0, \ldots, X_n)) = \phi(M_n)最后的等号是使用了鞅的定义。所以最终我们就得到了结论。 对于第二个,想法类似,根据下鞅的结论,我们有 E(\phi(M_{n + 1}) | X_0, \ldots, X_n) \ge \phi(E(M_{n + 1} | X_0, \ldots, X_n)) \ge \phi(M_n)最后一个不等号用到的是 \phi的不减性。所以这个证明也透露出了一个很有趣的现象就是正正不一定得正。原因在于,如果我们让 M_n的性质变得更好一点(从鞅变成上鞅),反而需要函数的性质更强,才能保持原来的结论不变。当然,你也可以理解为“相比较上下鞅,鞅才是数学家/统计学家更希望看到的性质”。 这个证明自然不是很困难,不过有两个点需要注意。一个是凸函数带来的期望的性质。这个性质的证明我们留给读者,但是考虑到期望本身的线性性(可以认为它是一个线性算子),我们可以把 E(\phi(X)) \ge \phi(E(X))理解为 \frac{\sum_{i = 1}^n \phi(X_i)}{n} \ge \phi(\frac{\sum_{i = 1}^n X_i}{n})这就回到了凸优化中,我们对凸函数的最经典的几何刻画了。这一部分内容感兴趣的可以看一下《凸优化》的第2节。 凸优化(2)——凸函数,强凸函数及相关拓展 对应的图如下 关于第二个问题,其实也可以解释为什么我们称它为下鞅,是因为鞅在经过一个下凸函数的复合之后会变成一个下鞅。也就是和上下调和函数的概念对应上了。这个翻译就使得“上鞅”在实际含义中,反而变成了赌徒所“不希望”出现的现象。 说完凹凸性,我们来看看什么是正交性。正交性就是这么一个意思 Theorem 2: 设 M_n是一个鞅,那么有 (1) E(M_{n + 1}^2|A_v) - M_n^2 = E((M_{n + 1} - M_n)^2 |A_v)(2) E(M_n - M_k)(M_j - M_i) = 0, 0 \le i \le j \le k < n(3) E(M_n - M_0)^2 = \sum_{k = 1}^n E(M_k - M_{k - 1})^2我们所说的“正交性”,其实就对应这里的第二个结论。这里的 A_v就是我们之前写的 X_0, \ldots, X_n的意思,这是一系列的条件。 第一个结论的证明不是特别困难,把 M_{n + 1}拆一下,可以得到 E(M_{n + 1}^2|A_v) = M_n^2 + E((M_{n+1} - M_n)^2 |A_v) + \cancel {2E(M_n (M_{n + 1} - M_n) | A_v)}最后一项可以划掉是为什么?这是因为首先, M_n在已有条件 A_v下是一个常数,其次,把这个常数提出来之后。剩下的 E(M_{n + 1} - M_n |A_v),根据鞅的性质就可以得到是0。所以移项就得到结论了。 第二个题的证明不是特别好想。不过很明显的一件事是,我们必须要先考虑一下怎么样使用“鞅”这个条件。鞅必须要在有条件的时候才能够使用,所以我们可以联想到重期望公式。因此我们会有 E(M_n - M_k)(M_j - M_i) = E\{E[(M_n - M_k)(M_j - M_i) | X_0, \ldots, X_k]\} =E[(M_j - M_i) E(M_n - M_k |X_0 \ldots, X_k)]这里我们的突破点是,能不能证明出 E(M_n - M_k |X_0, \ldots, X_k) = 0?要说明这个,其实就是希望说明 E(M_n|X_0, \ldots, X_k) = M_k这看似是一个很显然的结论,毕竟我们一直说鞅是一个“趋势”,如果下一个的量和上一个相同,那么在 n \ge k的情况下,似乎一步一步的期望值都不会变。但是这个结论的证明其实还是需要一些思考,我们重点分析一下这个。 根据数学归纳法,既然我们根据鞅的定义,有 E(M_{k + 1}|X_0, \ldots, X_k) = M_k那么其实我们只需要说明 E(M_{k + 2}|X_0, \ldots, X_k) = M_k就可以使用数学归纳法了。这一点其实还是需要依赖重期望公式的,因为我们希望用鞅的性质,那自然需要一些条件。 注意到 E(M_{k + 2}|X_0, \ldots, X_k) = E[E(M_{k + 2} |X_0 , \ldots, X_k) |X_0, \ldots, X_{k + 1}] = E[E(M_{k + 2} |X_0 , \ldots, X_{k + 1}) |X_0, \ldots, X_{k }] = E(M_{k + 1} |X_0 , \ldots, X_k) = M_k这就说明了结论成立,也就自然可以说明 E(M_n|X_0, \ldots, X_k) = M_k。因此我们的命题也就说明好了。 这个地方有一个问题是,条件的交换并不是任何情况下都成立的,而是必须要在包含关系下才可以成立。这个解释需要介绍一些实分析的例子和理解,可能会有较大的篇幅,我们留到下一节来说, 有了第二个结论,第三个结论就不难说明了。注意到我们可以做一个拆分,得到 M_n - M_0 = (M_n - M_{n - 1}) + \cdots + (M_1 - M_0)平方一下,所有的交叉项,根据第二个结论都是0,所以就证明完毕了。 到此为止,我们算是比较好的介绍了鞅的正交性和凹凸性。 可选停时定理可选停时定理(Optional Stopping Theorem)应该是鞅这个概念中最为重要的定理之一。简单来说,我们希望观察,在对鞅进行时间上的截断之后,性质上会不会有什么明显的变化。所以这里的停时是简简单单的“何时停止”的一个判断标准,和之前马尔科夫链里提到的“停时”的概念含义是相同的,因为这个停时确确实实只会与之前的时间上的信息有关。 我们先来看看一个简单版本的。 Theorem 3: 设 M_n是一个上鞅, T是停时, P(T < \infty) = 1,那么 M_{T \land n}也是一个上鞅。特别的, E(M_{T \land n}) \le E(M_0)。 当然了,改成鞅/下鞅,结果就对应的改一下就可以了。比方说对于下鞅,最后的不等式的符号就是 \ge。 这个结论其实是一个显然的结论,因为我们之前已经提到过,这个期望的趋势是可以传递的。更具体来说,如果 M_n是一个鞅,我们根据 E(M_1) = E(E(M_1|X_0)) = E(M_0)就可以根据数学归纳法得到结论。 复杂情况:E(M_T) = E(M_0)? 当然我们说了这只是一个简单版,有一个很有意思的问题是,如果 M_n是一个鞅,那么是否有 E(M_T) = E(M_0)?答案是否定的,可以看下面这个例子。 Counterexample 1: 设 S_n = 1 + \sum_{k = 1}^n X_k,且 X_k = \pm 1,等概率发生。那么设停时 T = \min\{n: S_n = 0\},那么它是一个停时,这个时候,虽然 S_n是一个鞅,并且 P_1(T < \infty) = 1,但是 E(S_T) = 0 \ne 1 = E(S_0),并不相等。 这里为什么 P_1(T < \infty) = 1,是因为 S_n可以被建模为一个离散马尔科夫链。在第5节(随机过程(5)——无限状态马尔科夫链的进一步探讨,泊松分布引入,复合泊松分布)我们就提到过,这个对应的是零常返的情况。 再看一眼这个反例。为什么从 E(M_{T \land n})到 E(M_T)了之后,结论就失效了呢?这是因为我们失去了对于每一步趋势的制约。也就是说,如果我们碰巧卡在了一个点,这个点的结果和之前的情况不一致,那么因为没有 n,所以期望结果就不一定和一开始的 M_0一致了。 既然这个相等是否定的,那么这个结论就不能用了吗?倒也不是,事实上,有很多充要条件可以帮助我们推导出 E(M_T) = E(M_0)。这里我们挑选一些来介绍。 Proposition 2: 设 M_n是一个鞅, T是一个停时, P(T < \infty) = 1,且对于某个常数 K,囿 M_{T\land n} \le K。那么有 E(M_T) = E(M_0)。 这个定理的证明并不困难。注意到 E(M_{T \land n}) = E(M_0),所以我们有 E(M_0) = \lim_{n \to \infty} E(M_{T \land n}) = E(\lim_{n \to \infty} M_{T \land n}) = E(M_T)中间的极限与期望交换顺序用的就是控制收敛定理,使用控制收敛定理的原因也是我们希望利用极限这个工具,建立 M_{T \land n}和 M_T之间的联系。因为 M_{T \land n} \le K,所以我们可以使用它。控制收敛定理是实分析的内容,感兴趣的同学可以参考这一节文章。当然了,这也不是我们第一次碰到这个定理了。 https://zhuanlan.zhihu.com/p/36921064 Proposition 3: 如果 P(T \le K) = 1,那么 E(M_T) = E(M_0)。 也就是说,如果可以保证 T几乎是有限的,那么也可以得到相等的结论。简单点说,因为我们有 E(M_{T \land n}) = E(M_0),所以设 n > K就可以了,而 n > K只需要 n充分大。当然这个不太严谨,不过我们强调了很多遍,更严谨的说法需要诉诸测度论相关的内容。如果说理解本身,那这就完全够了。 最后,再来看一个不是特别好理解的,可以推导出相等的一个充分条件。 Proposition 4: 若 E(T) < \infty, E(|M_{n + 1} - M_n | \mid X_1, \ldots, X_n) \le c < \infty,那么 E(M_T) = E(M_0)。 这里我们的想法也比较淳朴,就是证明 M_{T \land n}是绝对有界的(绝对有界是数分的一个概念,就是绝对值的上界有限),这样的话就可以利用控制收敛定理。这个思路的来源也是很容易得到的,因为条件相当于说鞅的绝对值的差距是有限的,那么求和在一起,利用三角不等式,应该也能推导出这个结论。 按照这个思路,我们推导一下。注意到 |M_{T \land n}| = |\sum_{k = 1}^ \infty (M_{k} - M_{k - 1}) I (k \le T \land n) + M_0 | \le |M_0| + \sum_{k = 1}^\infty |M_k - M_{k - 1}| I(k \le T \land n) \le |M_0| + \sum_{k = 1}^\infty |M_k - M_{k - 1}|I(k \le T)设 Y = |M_0| + \sum_{k = 1}^\infty |M_k - M_{k - 1}|I(k \le T),那么只要证明 E(Y) < \infty就可以了。那么注意到 E(Y) = E(|M_0|) + \sum_{k = 1}^\infty E(|M_k - M_{k - 1} | I(k \le T))E(|M_0|)是常数,不用管太多。而第二项我们很显然,会希望和条件关联上。所以我们有 E(|M_k - M_{k - 1} | I(k \le T)) = E[E(|M_k - M_{k - 1} | I(k \le T))|X_1, \ldots, X_{k - 1}] =E[I(k \le T) E(|M_k - M_{k - 1} | \mid X_1, \ldots, X_{k - 1})] \le E(c I(k \le T)) = c P(T \ge k)求和,根据 \sum_{k = 1}^\infty P(T \ge k) = E(T),就可以得到 E(Y) \le E(M_0) + c E(T) < \infty这就证明了结论。 好的,到此为止,其实关于可选停时定理的理论部分,我们就介绍的差不多了。当然了其实它还有挺多有趣的应用,这个我们放到下一节再说。 小结本节我们介绍了鞅。鞅是一个很有意思的随机过程,它保证了平均趋势的一个一致性。同时举了很多实际的鞅的例子,用以揭露这个概念被提出的背景。在这最后,我们介绍了可选停时定理。虽然在目前为止可能大家还不太明白为什么我说它是“鞅中最重要的定理之一”,但是到了下一节,大家就会发现它的强大威力。 在下一节,除了介绍应用以外,还会补充一点鞅的与收敛有关的理论性质。如果还有位置的话,我们就可以开始介绍我们这个系列的最后一个部分——布朗运动了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |