1 /**
2 大意:给定一个色子,有n个面,每一个面上有一个数字,在其中的m个面上有特殊的颜色,当掷出的色子出现这m个颜色之一时,可以再掷一次。。求其最后的期望
3 思路:假设 期望为ans
4 ans = 1/n*(a[b[1]]+ans)+1/n*(a[b[2]]+ans)+....+1/n*(a[b[m]]+ans) +...+1/n*(a[k])....
5 ans = m/n*ans+1/n*(a[1]+a[2]+a[3]+...a[n])
6 ans = m/n*ans+sum/n
7 ans = sum/(n-m)
8 若sum =0 ----〉ans =0;
9 若n-m=0-----〉ans = inf
10 否则 ans = sum/(n-m)
11 学习之处:进行简单的推导。。自己还是欠缺
12 **/
13 #include <iostream>
14 #include <cstdio>
15 using namespace std;
16 double a,b;
17 double n,m;
18 int main()
19 {
20 while(scanf("%lf",&n)==1){
21 double sum =0;
22 for(int i=0;i<n;i++){
23 scanf("%lf",&a);
24 sum += a;
25 }
26 scanf("%lf",&m);
27 for(int i=0;i<m;i++)
28 scanf("%lf",&b);
29 if(sum==0){
30 printf("0.00\n");
31 continue;
32 }
33 if((n-m)==0){
34 printf("inf\n");
35 }else{
36 printf("%.2lf\n",sum/(n-m));
37 }
38 }
39 return 0;
40 }
2013 南京邀请赛 A play the dice 求概率
时间: 2024-11-05 21:27:30