有趣的期望题

· · 个人记录

期望

本来就没做过多少期望题,看到这题的玄学解法就更蒙了

E(i)表示得i分的期望局数

这时考虑再打一场

E(i)+1=E(i+1)*p+E(i-1)*(1-p)

显然我不知道为什么能这么推 (期望加一个常数等于期望乘概率的和?)

那我们感性理解一下,E[i+1]表示得i+1分的期望局数,E[i-1]为得i-1分的期望局数.....好的,我真的不知道该怎么推

突然明白了期望是有实际意义的,它可以当做实际值去运算,赶忙改正以前的博客

P.S 用sigama的定义式转换一下应该是可以推的,有兴趣再推吧 好吧,我们直接用公式做题 移项,发现E[i+1]=(E[i]-E[i-1]*(1-p)+1)/p 特殊地,E[0]+1=(p*E[1]+(1-p)*E[0]) 所以可以线性递推了

上代码:

#include<bits/stdc++.h>
using namespace std;;

const int N=40;
int n;
double k;
double f[N];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
     scanf("%d%lf",&n,&k);
     f[0]=0.000;
     f[1]=1.000*((2-k)*f[0]+1)/k;
     for(int i=2;i<n;i++){
        f[i]=1.000*(f[i-1]-f[i-2]*(1-k)+1)/k;
     }
     printf("%.2lf\n",2*f[n-1]);
    }
}