概率
定义
设样本空间为(Ω),若对于(Ω)中的每一个随机事件(A),都存在实数函数值(P(A)),满足:
(P(A) ge 0)
(P(Ω) = 1)
对于若干个两两互斥的事件(A_1),(A_2),...存在(sum P(A_i)=P(igcup A_i))
则称(P(A))为随机事件(A)发生的概率
性质
1.记(A)的互斥事件为(A^c),则有(P(A)+P(A^c)=1)
2.对于任意两个事件(A)和(B),(P(Aigcup B)=P(A)+P(B)-P(Aigcap B))
3.对于互斥的(n)个事件(A_1,A_2....A_n),有(P(A_1igcup A_2 igcup ... igcup A_n)=P(A_1)+P(A_2)+P(A_3)+...+P(A_n))
4.对于事件(A)和(B),在(B)发生的前提下,(A)发生的概率(P(A|B)=frac {P(Aigcap B)}{P(B)})
5.对于无关事件(A)和(B),(P(A)=P(A|B)=P(A|B^c)),(P(Aigcap B)=P(A)*P(B))对于(n)个同理
6.独立重复实验的伯努利大数定理
在一次实验中发生某事件概率为(P),不发生概率为(Q),则(n)次实验至少发生(m)次的概率为((P+Q)^n)展开后从(P^n)到(P^mQ^{n-m})各项相加之和
若一次实验中某事件发生概率为(P),那么(n)次重复独立实验中此事件恰好发生(m(0le m le n))次的概率为(P_n(m)=C_n^m*P^m*(1-P)^{n-m})
数学期望
定义
若随机变量(X)的取值有(X_1,X_2...X_n),一个随机事件可以表示为(X=X_i),概率(P(X=X_i)=p_i),则称(E(X)=sum p_ix_i)为随机变量(X)的数学期望
说人话:一个事件所有的可能取值的值乘概率然后相加
性质
数学期望是线性函数,对于任意随机变量满足(E(aX+bY)=a*E(X)+b*E(Y)),对于不相关随机变量满足(E(X*Y)=E(X)*E(Y))
注意:平方的期望不等于期望的平方
例题
对于一个确定的01串,定义其价值为:所有极长的全1段的长度的立方和。现有一个长度为(n)的未确定的01串,第(i)个位置有(p_i)的概率是1,否则是0,求这个串的期望价值。
设(osu_i)表示1到(i)的期望价值,那么如果1到(i-1)结尾的全1段的长度为(x),那么当(i)位置取1时,会使价值增加((x+1)^3-x^3=3x^2+3x+1)因此在维护期望价值时,同时维护一下结尾的全1段的期望长度和长度平方的期望即可但是刚刚提到了平方的期望不等于期望的平方,因此需要用同样的方法来求,当(i)位置取1时,会使平方的期望增加((x+1)^2-x^2=2x+1)
#include<bits/stdc++.h>
#define LL long long
#define _ 0
using namespace std;
/*Grievous Lady*/
template <typename T> void read(T & t){
t = 0;int f = 1;char ch = getchar();
while(ch < '0' || ch > '9'){if(ch == '-')f =- 1;ch = getchar();}
do{t = t * 10 + ch - '0';ch = getchar();}while(ch >= '0' && ch <= '9');t *= f;
}
const int kato = 1e6 + 10;
int n;
double yuni;
double a[kato] , b[kato] , osu[kato];
inline int Ame_(){
read(n);
for(int i = 1;i <= n;i ++){
scanf("%lf" , &yuni);
a[i] = (a[i - 1] + 1) * yuni;
b[i] = (b[i - 1] + 2 * a[i - 1] + 1) * yuni;
osu[i] = osu[i - 1] + (3 * b[i - 1] + 3 * a[i - 1] + 1) * yuni;
}
printf("%.1lf
" , osu[n]);
return ~~(0^_^0);
}
int Ame__ = Ame_();
int main(){;}