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

SP1026 FAVDICE - Favorite Dice

时间:2019-05-03 11:43:40      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:dice   math   scan   题目   avd   print   描述   概率   i+1   

题目描述

一个\(n(n \leq 1000)\)面的骰子,求期望掷几次能使得每一面都被掷到。

输入输出样例

输入样例#1:

2
1
12

输出样例#1:

1.00
37.24

思路:期望\(dp\)中典型的赠券收集问题,用f[i]表示还剩i个面没有掷到,那么掷到之前没有掷到过的面的概率为\((n-i)/n\),然后次数的期望值就是概率分之一,然后进行逆向\(dp\)即可。

代码:

#include<cstdio>
#define dl double
dl f[1007];
int n,t;
int main() {
  scanf("%d",&t);
  while(t--) {
    scanf("%d",&n);
    f[n]=0;
    for(int i=n-1;i>=0;--i) 
      f[i]=f[i+1]+(n/(n-(double)i));
    printf("%0.2lf\n",f[0]);
  }
  return 0;
}

SP1026 FAVDICE - Favorite Dice

标签:dice   math   scan   题目   avd   print   描述   概率   i+1   

原文地址:https://www.cnblogs.com/grcyh/p/10804322.html

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