加载中...

扔骰子期望

扔骰子 可以选择扔到某个数的时候获得然后退出 或者不拿走继续扔

dp[i]表示扔第i次的时候的最大期望
f[n]=1/6*(max(1,f(n-1))+ max(2,f(n-2)) +max(3,f(n-1)) +max(4,f(n-1)) +max(5,f(n-1)) +max(6,f(n-1)) )

#include<stdio.h>
#define max(p,q)((p)>(q)?(p):(q))

int main(){
	int n;
	scanf("%d",&n);
	double ans=3.5;//当扔1次的时候的最大期望
	for(int i=1;i<n;i++){
		double ans2=0;
		for(int d=1;d<=6;d++)ans2+=max(ans,d)/6;
		ans=ans2;
	}
	printf("%.10f\n",ans);
}
posted @ 2022-08-29 12:43  liang302  阅读(72)  评论(0编辑  收藏  举报