6.4.2020 updated:
现在回看了一下当时自己…哎……
整半天原来可以直接调用已有结论……加在文末了……
提出问题
有 n 个互相独立的 0 至 1 之间等概率生成的随机变量,求从小到大排序后第 i 个数的数值期望
一个简化的问题
我们先来求解一个简化的问题:最大值的数值期望是多少?
我们会发现,由于这些变量都是在 0 到 1 之间等概率生成的,所以一个变量小于等于 x 的概率为 x(即 P(x0≤x)=x),则这 n 个数中最大值为 x 的概率为 xn−1(其他 n−1 个变量都小于等于 x)
再考虑到有 n 个数都有可能成为最大值,所以最后答案还要再乘(n1)(实际上这个组合数应该放在原式的概率函数 p(x) 里的,但为了表达方便,我们将这个组合数提到最外面最后进行计算,后面的运算也是如此)
由于期望的计算公式为
E(x)=+∞∑k=1xkpk
套到这题里就是
∫10x⋅xn−1⋅dx=1n+1
乘上组合数,得到这个简化问题的答案为 nn+1
扩展
我们现在求得了最大值(第 n 个数)的数值期望为 nn+1,同理可以计算出最小数(第 1 个数)的数值期望为 1n+1,由期望的线性性大胆猜想第 i 个数的数值期望为 in+1
下面来证明这个式子
类比上面求最大值的解法,我们可以很容易地列出我们需要的式子
∫10x⋅xi−1⋅(1−x)n−i⋅dx=∫10xi(1−x)n−i⋅dx
(第 i 个数为 x 的概率为前 i−1 个数都小于等于 x,后 n−i 个数都大于等于 x,则概率为 xi−1⋅(1−x)n−i)
这个式子在最后还要乘一个 n⋅(n−1i−1)(n 个数都有可能成为第 i 个数,还要再选出小于等于 x 的 i−1 个数)
我们列出了式子,但这个式子并不像 xn 这样好积分;为此,我们考虑分部积分:
∫bauv′dx=uv|ba−∫bavu′dx
积分
明确目标,我们要求
∫10xi(1−x)n−i⋅dx
代 {u=(1−x)n−iv′=xi
则原式即为
∫10uv′⋅dx=(uv)∣∣10−∫10u′v⋅dx
由于 uv 在 x=0 或 1 时都为零,则只需要考虑后面的式子即可:
−∫10u′v⋅dx=∫10(n−i)(1−x)n−i−11i+1xi+1⋅dx=n−ii+1⋅∫10xi+1(1−x)n−i−1⋅dx
数列
发现这个式子和原式长得很像,可以对比一下:
∫10xi⋅(1−x)n−i⋅dx∫10xi+1(1−x)n−i−1⋅dx
设 ai=∫10xi(1−x)n−i⋅dx,则可以得到一个有趣的递推式 ai=n−ii+1⋅ai+1,而边界条件即为一开始证明的式子 an=nn+1
从而可以得到 ai 的通项公式 ai=i!(n−i)!(n+1)!
所以前面那一长溜的积分式,可以化简为 i!(n−i)!(n+1)!
最后不要忘记之前提取出来的组合系数 n⋅(n−1i−1)
解得的答案为 i!(n−i)!(n+1)!⋅n⋅(n−1i−1)=in+1
猜想得证
结论
有 n 个互相独立的 0 至 1 之间等概率生成的随机变量,求从小到大排序后第 i 个数的数值期望为 in+1
可以推广,若变量的生成范围为 [l,r],则第 i 小数的数值期望为 l+i⋅(r−l)n+1
最近加了友链的一位同学知道一个比较简单的组合解释,果真还是老了啊
updated:Γ 函数与 B 函数
上面整这半天实际上可以用已有结论:
引入 Gamma 函数与 Beta 函数:
Γ(x)=∫+∞0tx−1e−tdtB(x,y)=∫10tx−1(1−t)y−1dt
有几个结论:
- Γ(1)=1 且 Γ(x+1)=xΓ(x),故 Γ(x+1)=x!(x∈Z)
- B(x,y)=Γ(x)Γ(y)Γ(x+y)
然后考虑到之前关键求的是
∫10xi(1−x)n−i⋅dx=B(i+1,n−i+1)
然后直接套结论就好了……还是数学没学好的说……(不过问了好几位dalao都没人提这玩意TAT)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话