数学期望

本文通过介绍数学期望的概念,结合UVa12230 过河、UVa1639 糖果、UVa10288 优惠券等算法竞赛问题,阐述数学期望在解决实际问题中的重要作用。通过计算数学期望,可以求解平均过河时间、糖果剩余数量的期望值以及购买彩票获得大奖所需的平均张数。
摘要由CSDN通过智能技术生成

本文为该书的笔记:刘汝佳. 算法竞赛入门经典.第 2 版 [M]. 清华大学出版社, 2014.

定义:

在概率论和统计学中,数学期望 (mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。
数学期望百度百科

定义式:
E ( X ) = ∫ Ω X d P E(X)=\int _\Omega XdP E(X)=ΩXdP
线型性质( X 和 Y 两个随机变量并不要求相互独立):
E ( a X + b Y ) = a E ( X ) + b E ( Y ) E(aX+bY)=aE(X)+bE(Y) E(aX+bY)=aE(X)+bE(Y)
全期望公式:

类似全概率公式,把所有情况不重复、不遗漏地分成若干类,每类计算
数学期望,然后把这些数学期望按照每类的概率加权求和。

E ( X ) = E ( E ( X ∣ Y ) ) E(X)=E(E(X|Y)) E(X)=E(E(XY))
式中, E ( X ∣ Y ) E(X|Y) E(XY) 指的是随机变量 Y 取特定值(即 y )时 X 的数学期望。

UVa12230 过河

你住在村庄 A ,每天需要过很多条河到另一个村庄 B 上班。 B 在 A 的右边,所有的河都在中间。幸运的是,每条河上都有匀速移动的自动船,因此每当到达一条河的左岸时,只需等船过来,载着你过河,然后在右岸下船。你很瘦,因此上船之后船速不变。
日复一日,年复一年,你问自己:从 A 到 B ,平均情况下需要多长时间?假设在出门时所有船的位置都是均匀随机分布。如果位置不是在河的端点处,则朝向也是均匀随机。在陆地上行走的速度为 1 。
输入 A 和 B 之间河的个数 n 、长度 D ( 0 ≤ n ≤ 10 , 1 ≤ D ≤ 1000 ),以及每条河的左端点坐标离 A 的距离 p ,长度 L 和移动速度 v ( 0 ≤ p<D , 0<L ≤ D , 1 ≤ v ≤ 100 ),输出 A 到 B 时间的数学期望。输入保证每条河都在 A 和 B 之间,并且相互不会重叠。

样例:

Sample Input
1 1
0 1 2
0 1
0 0
Sample Output
Case 1: 1.000
Case 2: 1.000

在陆地上行走的时间是确定的,重点在与在河上的时间,在出门时所有船的位置都是均匀随机分布表明在到达岸边的时候该船的位置和方向也是随机的,也就是说等待船走的距离在 0~2L 之间( 2L 是指船刚刚离岸向对岸走的时候,而且均匀分布)。这样,过该河的时间就在 L v \frac L v vL~ 3 L v \frac {3L} v v3L 均匀分布,这样过该河的时间的数学期望为 2 L v \frac {2L} v v2L 。根据数学期望的线性性质,过河需要的总的时间的数学期望就等于过每条河需要的时间的数学期望的和。
完整程序:

//#define LOCAL
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <algorithm>
#include <cstring>

using namespace std;

int main()
{
    
#ifdef LOCAL
    freopen("data.in", "r", stdin);
    freopen("data.out", "w", stdout);
#endif // LOCAL
    double t;
    int n, D;
    int p, L, v;
    int kas = 0;
    while (cin >> n >> D && (n || D))
    {
    
        t = (double)D;
        while (n--)
        {
    
            cin >> p >> L >> v;
            t = t + 2 * (double)L / v - L;
        }
        printf("Case %d: %.3lf\n\n", ++kas, t);
    }

    return 0;
}

UVa1639 糖果

有两个盒子各有 n ( n ≤ 2* 1 0 5 10^5 105 )个糖,每天随机选一个(概率分别为 p , 1-p ),然后吃一颗糖。直到有一天,打开盒子一看,没糖了!输入 n, p ,求此时另一个盒子里糖的个数的数学期望。

样例:

Sample Input
10 0.400000
100 0.500000
124 0.432650
325 0.325100
532 0.487520
2276 0.720000
Sample Output
Case 1: 3.528175
Case 2: 10.326044
Case 3: 28.861945
Case 4: 167.965476
Case 5: 32.601816
Case 6: 1390.500000

根据期望的定义:
E ( X ) = ∫ Ω X d P E(X)=\int _\Omega XdP E(X)=ΩXdP
我们需要知道另一个盒子里糖的个数的可能值和每一个可能值的概率

因为选择每个盒子的概率不一样,所以我们需要知道另一个盒子是指的哪个盒子。

我们不妨设最后打开第 1 个盒子,那么“另一个盒子”就是第 2 个盒子,在这之前打开了 2n-i 次,有 n 次打开的是第一个盒子,那么前 2n-i 次的概率为 C 2 n − i n p n ( 1 − p ) n − i C_{2n-i}^n p^n(1-p)^{n-i} C2ninpn(1p)ni ,最后一次打开第 1 个盒子的概率为 p,那么最后打开第 1 个盒子且满足题目要求的概率为 C 2 n − i n p n + 1 ( 1 − p ) n − i C_{2n-i}^n p^{n+1}(1-p)^{n-i} C2ninp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值