|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
标准分计算器
上一期:https://fishc.com.cn/thread-236399-1-1.html
也许在上一期的超级计算器,大家可能没有什么灵感,所以这一期,我们举了一个常用的例子,来帮助大家启发“超级计算器”的灵感!
问题描述
zhangjinxuan 所在的学校举行了一场大考,一共有 N 名选手参加。
这一场大考又分为 M 次考试,第 i 个人在第 j 场考试得了 a_{i,j} 分。
因为每一场考试的难易度不同,直接把分数加起来分排名是不公平的,所以,我们需要引入标准分,具体而言,人 i 在第 j 场考试取得的标准分是他的实际分数与这场考试的最高分的比。
这样,我们就得到了每个人在每一场考试的标准分,只要对一个人所有考试的标准分取平均值,我们就可以很好的衡量每一位选手在这场大考中的发挥。
因为 zhangjinxuan 没有时间去统计,所以他把榜单给了你,让你实现这个标准分计算器!
形式化题意
(本公式过于抽象,请谨慎观看。Latex 中食用更佳)
给定一个 $N\times M$ 的二维序列 $a$,对于每一个 $i(1\le i\le N)$,请求出 $frac{\sum_{j=1}^{M}\frac{a_{i,j}}{\max_{i=1}^{N}a_{i,j}}}{M}$
输入格式
第一行两个整数 N,M。
接下来 N 行,每行有 M 个以空格隔开的整数表示成绩单 a。
输出格式
输出 N 行,每一行一个在 0~1 的浮点数表示答案,请输出两位小数。
输入示例
- 5 3
- 100 80 90
- 100 60 60
- 80 70 50
- 90 90 100
- 100 90 100
复制代码
输出示例
对于最后一个人,因为这几场考试他都是最高分,所以他的平均标准分就是 1。
提示
对于 50% 的数据,1 <= N,M <= 100。
对于 100% 的数据,1 <= N,M <=1000, 1<= a_{i,j} <= 100$。
非常锻炼基本功哦~一定要小心编写代码~
本题 zhangjinxuan 原创,已经收入梦想 OJ,测评链接 -> https://hydro.ac/d/gaoshan/p/43
题目解析
请独立思考再查看答案!
[/hide]
这个问题可以使用Python来解决。下面是解决方案:
- N, M = map(int, input().split())
- scores = []
- for _ in range(N):
- row = list(map(int, input().split()))
- scores.append(row)
- max_scores = [max(col) for col in zip(*scores)]
- for i in range(N):
- standard_scores = [score / max_scores[j] for j, score in enumerate(scores[ i])]
- average_standard_score = sum(standard_scores) / M
- print('%.2f' % average_standard_score)
复制代码
这段代码首先读取输入的N和M,然后读取N行M列的成绩单。接下来,我们找到每一场考试的最高分,然后计算每个人的标准分并求平均值,最后将结果输出。
|
评分
-
查看全部评分
|