F - Dice (III) LightOJ - 1248
Posted studyshare777
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了F - Dice (III) LightOJ - 1248相关的知识,希望对你有一定的参考价值。
掷出有n面的色子的全部面,求他的期望。
分析:
期望dp,假设掷出i面,dp[i]表示掷出i面的期望。每次会掷出2种情况:1.掷出不同的面,转移到i+1面,概率为(n-i)/n。2.掷出相同的,状态还是i面,概率为i/n。
且花费为1(每次要投一次)。dp方程:dp[i]=( dp[i+1]+1 ) * (n-i)/n+( dp[i]+1 ) *i/n,化简为dp[i]=dp[i+1]+1+i/(n-i)。(期望dp要逆推)
代码:
#include <cstdio> #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cmath> using namespace std; typedef long long ll; const int maxn=1e5+6; double dp[maxn]; int main() { int T,n; cin>>T; for(int j=1;j<=T;j++) { cin>>n; dp[n]=0; for(int i=n-1;i>=0;i--) { dp[i]=dp[i+1]+1+i*1.0/(n-i); } printf("Case %d: %.7f ",j,dp[0]); } return 0; }
以上是关于F - Dice (III) LightOJ - 1248的主要内容,如果未能解决你的问题,请参考以下文章