首页 > 其他 > 详细

D - Deceptive Dice 期望&思维

时间:2020-04-28 13:02:54      阅读:69      评论:0      收藏:0      [点我收藏+]

传送门:https://vjudge.net/contest/370208#problem/D

题意

  给你一个有n个面的骰子,点数由1到n,可以投k次,不一定要k次,最终得分是最后一次的点数,求得分期望。

思路

  例如n=20,k=3,在第一次的时候,得分期望为10.5(1到20的平均数),k=2的时候,点数1到10的结果不会取,因为第一次的得分期望已经是10.5了,只会在点数11到20里取,那么第二次摇到1到10的概率为10/20设为f,摇到11到20的概率为1-f,所以k=2的时候的得分期望就是10.5*f+(11+20)/2*(1-f),以此类推。

AC代码

#include<iostream>
#include<math.h>
#include<vector>
#include<stdio.h>
using namespace std;
int n,k;
double ans;
int main()
{
    cin>>n>>k;
    double ans=0;
    for(int i=1;i<=k;i++){
        int num=floor(ans);
        double f=num*1.0/n;
        ans=ans*f+(1-f)*((num+1+n)*1.0/2);
        //cout<<ans<<"*\n";
    }
    printf("%.7f",ans);
    return 0;
}

 

D - Deceptive Dice 期望&思维

原文:https://www.cnblogs.com/qq2210446939/p/12793335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!