码迷,mamicode.com
首页 > 其他好文 > 详细

F - Dice (III) LightOJ - 1248

时间:2020-03-06 10:36:34      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:net   nbsp   math   表示   clu   lightoj   假设   names   pac   

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\n",j,dp[0]);
    }   
    return 0;
}
 

 

F - Dice (III) LightOJ - 1248

标签:net   nbsp   math   表示   clu   lightoj   假设   names   pac   

原文地址:https://www.cnblogs.com/studyshare777/p/12425045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!