G 音乐鉴赏(非二分解法)

二分解法参看https://blog.csdn.net/weixin_43701790/article/details/104288964

思路

目的明确就是求一个期望E,如果我们知道了每个人优秀的概率,那么每个人优秀的概率求和除以总人数就是班级优秀的概率期望值,因为转换为如何表示出来每个人优秀的概率。

假设成绩占比为x,则平时成绩占比为(1 - x),如果一个同学平时成绩为s,他想优秀就必须总成绩\geq90,也就是s\times (1-x)+y*x\geq 90,y为随机打分的成绩,那么也就是说y最低是(90 - s\times (1-x))\div x才会优秀,所以他优秀的概率就是从这分数开始到90为止这个区间的长度除以整个打分区间的长度,即(90-(90-s \times (1-x))\div x)\div 90,这个就是这个人优秀的概率,可以看出这个概率是一个只与平时成绩s和成绩占比x相关的式子,最后对所有的概率求和得\sum _{1}^{n} p_{i},最后讲概率和除以总人数n就得到期望,即(\sum _{1}^{n} p_{i}) \div n=0.1,最后可以化成如下形式

x=\frac{(\sum_{1}^{n}s_{i}) - 90n}{9n-90n+ \sum _{1}^{n}s_{i}}

根据这个式子计算即可

/*************************************************************************
	> File Name: G.cpp
	> Author: amoscykl
	> Mail: amoscykl@163.com 
	> 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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值