鱼C论坛

 找回密码
 立即注册
查看: 2167|回复: 10

[已解决]【梦想森林】【传统题目】第二期 标准分计算器

[复制链接]
发表于 2023-11-16 15:48:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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 的浮点数表示答案,请输出两位小数。

输入示例


  1. 5 3
  2. 100 80 90
  3. 100 60 60
  4. 80 70 50
  5. 90 90 100
  6. 100 90 100
复制代码


输出示例


  1. 0.93
  2. 0.76
  3. 0.69
  4. 0.97
  5. 1.00
复制代码


对于最后一个人,因为这几场考试他都是最高分,所以他的平均标准分就是 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]

最佳答案
2023-11-16 15:55:56
这个问题可以使用Python来解决。下面是解决方案:

  1. N, M = map(int, input().split())
  2. scores = []
  3. for _ in range(N):
  4.     row = list(map(int, input().split()))
  5.     scores.append(row)

  6. max_scores = [max(col) for col in zip(*scores)]
  7. for i in range(N):
  8.     standard_scores = [score / max_scores[j] for j, score in enumerate(scores[ i])]
  9.     average_standard_score = sum(standard_scores) / M
  10.     print('%.2f' % average_standard_score)
复制代码


这段代码首先读取输入的N和M,然后读取N行M列的成绩单。接下来,我们找到每一场考试的最高分,然后计算每个人的标准分并求平均值,最后将结果输出。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
高山 + 5 + 5 + 3

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-17 08:49:47 | 显示全部楼层
梦想护卫舰,终将走向衰落

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
陶远航 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-11-16 15:49:11 | 显示全部楼层
这道题目是一个关于标准分计算的问题,需要对每个选手在每场考试中的分数进行处理,最终求出每个选手的平均标准分。

我已经给出了一个 C++ 的解法,并附上了代码和简要的解题思路。你可以参考这个解法,并根据需要进行调整和优化。

如果你有任何关于代码的疑问,或者需要进一步的解释,请随时告诉我,我可以帮助你进一步理解和修改代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-16 15:51:14 | 显示全部楼层
Mike_python小 发表于 2023-11-16 15:49
这道题目是一个关于标准分计算的问题,需要对每个选手在每场考试中的分数进行处理,最终求出每个选手的平均 ...

感谢您的回答!非常感谢您支持本系列!(雾)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-16 15:55:56 | 显示全部楼层    本楼为最佳答案   
这个问题可以使用Python来解决。下面是解决方案:

  1. N, M = map(int, input().split())
  2. scores = []
  3. for _ in range(N):
  4.     row = list(map(int, input().split()))
  5.     scores.append(row)

  6. max_scores = [max(col) for col in zip(*scores)]
  7. for i in range(N):
  8.     standard_scores = [score / max_scores[j] for j, score in enumerate(scores[ i])]
  9.     average_standard_score = sum(standard_scores) / M
  10.     print('%.2f' % average_standard_score)
复制代码


这段代码首先读取输入的N和M,然后读取N行M列的成绩单。接下来,我们找到每一场考试的最高分,然后计算每个人的标准分并求平均值,最后将结果输出。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-17 15:07:52 | 显示全部楼层
zhangjinxuan 发表于 2023-11-17 08:49
梦想护卫舰,终将走向衰落

正确
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-17 19:30:23 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-19 10:33:19 | 显示全部楼层
zhangjinxuan 发表于 2023-11-17 08:49
梦想护卫舰,终将走向衰落

正确的,中肯的,一针见血的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-25 15:43:08 | 显示全部楼层
@FishC_GPT
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 15:43:13 | 显示全部楼层

你好!有什么编程问题我可以帮助解答吗?
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-28 20:50:44 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 03:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表