已知某事件发生的概率为p,则要让该事件发生所需的试验次数期望值为1/p

本文介绍了如何理论证明当事件发生的概率为p时,需要进行的试验次数期望值为1/p。通过数学推导及程序验证这一结论,深入理解概率与试验次数的关系。
摘要由CSDN通过智能技术生成



问题来源:

《数据结构与算法分析——Java语言描述》(美)Mark Allen Weiss

第四章的习题 4.14 

理论证明:

已知事件A发生的概率为p,

试验1次,事件A就发生的概率为p,

试验2次,事件A才发生的概率为p·(1-p),

试验3次,事件A才发生的概率为p·(1-p)^2,

...

试验k次,事件A才发生的概率为p·(1-p)^(k-1)。

试验次数的期望

E = sigma(k = 1~无穷大) k·p·(1-p)^(k-1)

记 S = 1 + 2(1-p) + 3(1-p)^2 + ... + k(1-p)^(k-1),

(1-p)S = (1-p) + 2(1-p)^2 + 3(1-p)3 + ... + (k-1)(1-p)^(k-1) + k(1-p)^k,

所以,

pS = 1 + (1-p) + (1-p)^2 + (1-p)^3 + ... + (1-p)^(k-1) - k(1-p)^k,

S = (1-(1-p)^k)/p - k(1-p)^k

当k趋向于无穷大时,S = 1/(p^2),

所以,E = 1/p。


编写程序验证:


                
在统计学和计算机科学中,利用已知的逻辑分布(比如伯努利分布、二项分布、泊松分布等)生成随机数是一个常见的任务。每个特定的逻辑分布都有其特有的期望值和方差,通过这些属性,我们可以使用相应的随机数生成算法。 举个例子,如果我们想要从伯努利分布(成功或失败的概率各为p和1-p)生成随机数,我们通常会使用如下方法: 1. **伯努利分布(Binomial Distribution)**:对于每次独立的试验,结果只有两种可能(例如“成功”或“失败”),可以使用 `rand` 函数结合概率 p 来生成。如果 `rand()` 返回一个小于等于 p 的随机数,则认为这次试验是成功的,否则失败。 ```matlab p = 0.5; % 成功的概率 nTrials = 100; % 总试验次数 successes = randsample([0, 1], nTrials, true, p); % 生成nTrials次伯努利随机数 ``` 2. **泊松分布(Poisson Distribution)**:适用于描述在一个固定时间间隔内发生独立随机事件的平均次数。生成泊松随机数可以用MATLAB中的 `poissrnd` 函数。 ```matlab lambda = 5; % 平均事件数 randomEvents = poissrnd(lambda, [1, nTrials]); % 生成nTrials个泊松随机数 ``` 3. **正态分布(Normal Distribution)**:更复杂一些,由于标准正态分布可以直接通过 `normrnd` 函数生成,然后根据所需的均值和标准差转换。 ```matlab mu = 0; % 均值 sigma = 1; % 标准差 normalRandoms = normrnd(mu, sigma, [1, nTrials]); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值