假设
均为
上的均匀分布,且满足限制条件:
求此时
的真实分布表达式。
限制条件下
的密度函数表达式如下:
我们可以快速地给出推导公式为:
令
则我们有:
而
我们可以通过递归关系
快速计算得到:
因此,我们即可解得:
特别地,积分即可快速得到,某一个元素要取值得到至少
的概率为:
。
如果我们要对上述结论进行验证,我们可以使用蒙特卡洛模拟来对上述结论进行验证。
我们直接给出代码如下:
import numpy as np
from random import random
from matplotlib import pyplot as plt
def monte_carlo_simulate(n=5, N=10000):
s = []
for _ in range(N):
while True:
tmp = [random() for _ in range(n-1)]
if sum(tmp) <= 1:
s.append(1 - sum(tmp))
break
return s
def show_simulate(n=5, N=10000):
x = np.linspace(0, 1, num=100)
y = (n-1) * np.pow(1-x, n-2)
s = monte_carlo_simulate(n=n, N=N)
plt.figure(figsize=(15, 7))
plt.hist(s, bins=100, range=[0, 1], density=True)
plt.plot(x, y)
plt.show()
return
show_simulate(n=5, N=10000)
可以看到:
进一步的,如果我们要快速地获取符合
分布的随机数,也只需要做如下构造即可:
import math
from random import random
def random(k=5):
x = random()
z = 1 - math.pow(z, 1/(k-1))
return z
下面,我们稍微拓展一下,如果
不连续,是离散的情况下,那么结果如何。
我们修改问题为:
假设我们有
个均匀分布的离散项,取值范围为
,且满足限制条件
,那么其中
不小于
的概率是多少。
这个问题其实感觉比上述连续的情况还要简单一些,我们只需要将其视为排列组合问题即可进行解答,即视为分堆问题,将
个元素分到
个堆当中,令其中某一个堆中的元素个数不少于
。
首先,我们来考察一下最简单的情况,即要求每个堆中至少有一个元素,且
均为有限整数。
此时,我们要做的事实上就是在
个元素所构成的
个间隔位置当中放入
个挡板。不妨设要求的堆就是第一个堆,即第一个堆的元素个数不少于
个,此时,符合要求的摆放方式必然要求第一个挡板的出现位置必须要在第
个间隔或者之后。
因此,我们可以得到答案为:
对于整数的情况,其结果本质上是与之前正数的情况完全相同的,唯一的区别在于,挡板可以相邻,因此,我们事实上就是将
个元素与
个挡板合在一起进行排列组合。
同样的,我们要求第一个堆当中至少包含
个元素,此时我们可以仿上求得答案为:
的情况
最后,我们考察一下
的情况,令
,且有
。
此时,上述两个式子的解收敛为:
此结果就是之前讨论的连续情况下的解。
这里,其实有一个坑要注意一下,就是如果你在模拟的时候这么写作函数:
def simulate(n=5, N=10000):
s = []
for _ in range(N):
t = 1.0
for _ in range(n-1):
t -= t * random()
s.append(t)
return s
此时,采样得到的
个点事实上也满足
,但是如果我们将
的分布画出来的话,可以注意到,
的分布与
的取值有关,且
越大,采样得到的
的均值越小。
我们以
为例,可以绘制得到曲线如下:
这乍看有点迷糊,其实仔细想想的话你会注意到这里的
的取值概率是与开始的题目描述不一致的,原本要求的概率应该是:
而这里模拟的概率事实上是:
因此就会出现两种模拟的结果不一致的情况。
而同样的,如果有读者感兴趣的话,后者事实上我们也可以很轻松地求出其概率密度函数为:
需要注意的是,这里的
,当
时,此时其分布与
时相同,多多少少有那么一点点特殊。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有