二分解法参看https://blog.csdn.net/weixin_43701790/article/details/104288964
思路
目的明确就是求一个期望E,如果我们知道了每个人优秀的概率,那么每个人优秀的概率求和除以总人数就是班级优秀的概率期望值,因为转换为如何表示出来每个人优秀的概率。
假设成绩占比为x,则平时成绩占比为(1 - x),如果一个同学平时成绩为s,他想优秀就必须总成绩90,也就是,y为随机打分的成绩,那么也就是说y最低是才会优秀,所以他优秀的概率就是从这分数开始到90为止这个区间的长度除以整个打分区间的长度,即,这个就是这个人优秀的概率,可以看出这个概率是一个只与平时成绩s和成绩占比x相关的式子,最后对所有的概率求和得,最后讲概率和除以总人数n就得到期望,即,最后可以化成如下形式
根据这个式子计算即可
/*************************************************************************
> File Name: G.cpp
> Author: amoscykl
> Mail: [email protected]
> Created Time: 2020年02月13日 星期四 12时26分10秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
const int N = 101000;
double a[N];
int n;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)scanf("%lf", a + i);
double sum = 0.0;
for (int i = 1; i <= n; i++){
sum += a[i];
}
double res = (sum - 90.0 * n) / (9.0 * n - 90.0 * n + sum);
printf("%.2lf%c\n", res * 100, '%');
return 0;
}