概率期望训练之五

吐槽:

考试的时候一直推的是f(k-1)*p,就导致gg了

分析:

假设现在已经k-1个正面向上了,

首先f(k)=f(k-1)+1+(....),表示起码从k-1转移到k还需1次

后面加的就是分别讨论两种情况

如果这次硬币正面向上,则还需要抛0次 p*0

如果这次硬币反面向上,则空亏一窥 还需要(1-p)*f(k)

则式子就是

f(k)=f(k-1)+1+p×0+f(k)×(1-p)

​ =f(k-1)+1+f(k)*(1-p)

最后化简为一个等比数列求和

注意:还要特判1这种情况

code:

#include <cstdio>
#define ri register int
typedef long long ll;
#define rll register ll
const int mod=998244353;
inline int fpow(ri a,rll b){
	ri ans=1;
	for(;b;b>>=1,a=(ll)a*a%mod)
		if(b&1) ans=(ll)ans*a%mod;
	return ans;
}
int main(){
	freopen("coin.in","r",stdin);
	freopen("coin.out","w",stdout);
	ri p;
	rll k;
	scanf("%d%lld",&p,&k);
	if(p==1)
		printf("%lld\n",k);
	else
		p=fpow(p,mod-2),
		printf("%lld\n",(ll)p*(fpow(p,k)-1+mod)%mod*fpow(p-1,mod-2)%mod);
	return 0;
}

posted @ 2019-11-03 15:33  wzx_believer  阅读(122)  评论(0编辑  收藏  举报