一维随机游走的一个技巧

假设在数轴上有一个点,一开始在原点,每次回等概率的往左或往右移动一个单位距离,求移动\(n\)次后距离原点的期望

答案是\(E(n)=\sqrt{n}\)

因为距离存在绝对值,直接用定理推期望会有亿点问题,我们可以考虑距离的平方的期望

\(E(n)^2=\frac{1}{2}(E(n-1)+1)^2+\frac{1}{2}(E(n-1)-1)^2=E(n-1)^2+1\)
于是可以得到\(E(n)^2=n\)

有什么用呢?

给你一个序列
假设你要求的一个最优的匹配是长这样

在这里插入图片描述

那么DP的时候需要记录差值,这样最优情况的差值在某一时刻,DP数组可能要开到\(n/2\)的级别,那时间复杂度就是\(O(n^2)\)

然而如果你把这个序列一开始就随机打乱,那么最优解的任意时刻差值大概率就是\(<\sqrt{n}\)级别的了,所以只需考虑差值在\(\sqrt{n}\)以下的,所以时间复杂度变为\(O(n\sqrt{n})\)

posted @ 2022-02-16 15:29  lahlah  阅读(648)  评论(3)    收藏  举报