​题目传送门​


题目描述

作为“音乐鉴赏”课的任课老师,你的课程作为刷学分好课一直受到广泛欢迎。但这一学期,学校制定了新的标准,你的课的优秀率(分数超过90分的人数)被限制在10%以下!
为了应对这个调整,你要求所有的同学都写了一篇论文,并使用随机算法打出了0-90之间的分数,分数可能不是整数。这里的随机是指,对于在[0,90]这个闭区间上的任何一对等长的区间,分数出现在其中的概率均是相同的。在期末的分数占比为百分之多少的时候,你的课程优秀率期望恰好在10%?保证所有同学的平时成绩都高于90分。


输入描述:

输入第一行包含一个整数 n,保证n是10的倍数。
第二行包含 n 个整数,代表同学们的平时成绩。


输出描述:

输出一行一个百分数,代表期末分数占比多少为合适。保留两位小数。


输入

10
99 99 99 99 99 99 99 99 99 99


输出

50.00%


说明

需要随机占比50%。


备注:

2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_#include


题解

  • 如果随机占比为 x ,一个人分数为 scorescore ,那么他优秀的概率为2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_c++_02
  • 这个概率可以这么计算:首先把分数减90,大于0就优秀,那么就变成2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_#include_03,其中y是一个随机的0到90之间的数字。2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_#include_04
  • 2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_c++_05,解方程可知答案为2020牛客寒假算法基础集训营4.G——音乐鉴赏【概率】_解方程_06
  • 得到公式了,就很好求了~~~

AC-Code

#include<bits/stdc++.h>
using namespace std;
int main() {
int n; while (cin >> n) {
int sum = 0, tp = 0;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> tp;
sum += tp;
}
double S = sum - 90 * n;
cout << setprecision(2) << fixed;
cout << (S / (9 * n + S) * 100) << "%\n";
}
return 0;
}