百分制积分算法

百分制积分算法

1步:取ln的意义

取对数,防止某些数值过大,相当于排除异常值,并且小的数值可以提升,防止差距过大。取对数还可以防止不同指标的量级相差过大

2步:归一化

1、分母加上0.0001,一是可以避免出现除数为0情况,二来可以避免满分情况发生

第3步:为什么要设定2个权重呢?1个权重不可以么?

1个权重也可以,但是这一个权重直接就设定到了详细的指标权重,不便于分析和管理,可以先设定一个大类的权重,再将大类的权重进行拆分。

4步:若总分值偏低

算出的总分最大值偏低,最高分才70多分,不大好看呢,怎么样能够让让top10的分数保持在85-99之间呢?

可以采用上述图4办法。

原值xln(x)
10
102.302585
1004.60517
10006.907755
100009.21034
10000011.51293
100000013.81551
1000000016.1181
10000000018.42068

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常抱歉,我之前回答的内容有些错误。以下是正确的回答: 题目描述: 计算机专业实在是太卷了,又到了确定保研资格的阶段,各位同学都紧盯着自己的绩点,想知道自己能否顺利上岸。作为负责成绩的J老师,对保研成绩核算也是异常的谨慎。绩点核算时,若绩点相差不到0.01,则认为排名相同。由于工作繁琐,他想请你做一个程序帮忙计算大家的绩点。 根据学校的规定,绩点的计算方法为: GPA= ∑Fi×Pi / ∑Pi 其中,GPA为所计算的绩点,Fi为课程的绩点成绩,Pi为该课程的学分数。 绩点成绩Fi不是课程的真实百分制成绩,而是从百分制成绩转换为而来,转换的方法是: Fi= 10×(Si-50)/10 其中Si为对应的百分制成绩,若百分制成绩低于50,记绩点成绩为0。 输入格式: 输入中有若干行,最多不超过500行。每行包含一个同学的信息,包括姓名、学号、学期总学分数、各门课程的百分制成绩和学分数,以空格分隔。 输出格式: 按照绩点从高到低的顺序输出同学的信息,包括姓名、学号、学期总学分数、GPA,以空格分隔。若GPA相差不到0.01,则认为排名相同。 样例输入: ``` Tom 2021001 20 89 4 67 3 91 2 John 2021002 18 70 3 80 2 81 3 72 3 ``` 样例输出: ``` Tom 2021001 20 3.51 John 2021002 18 2.95 ``` 解题思路: 首先根据输入数据格式,需要将输入数据解析成姓名、学号、学期总学分数、各门课程的百分制成绩和学分数这五个部分。解析完输入数据后,就可以按照绩点计算公式计算同学的绩点,并将同学信息和绩点存储到一个列表中。最后按照绩点从高到低的顺序对同学信息进行排序,并输出结果。 解题代码:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值