山东新高考等级赋分如何快速转换

2023-12-14 12:59

本文主要是介绍山东新高考等级赋分如何快速转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前,山东新高考成绩采用3+3模式,即语数外使用原始分,其余三门选课参照正态分布原则,采用等级赋分制进行计算,将三门科总成绩与语数外三门课相加形成学生最后的总成绩。学校在进行等级赋分转换时需要充分考虑以下几个方面:
1:总分相同时的排名问题。
2:选课走班生,其走班科目的成绩应放在其教学班进行对比,而非行政班对比。
目前很多学校或软件,并未将选课走班生单独拿出来,而是一并归入采用行政班,这虽然在总成绩上没有影响,但对于观察班级整体成绩则会出现数据失真问题。

那么我们如何在全年级对某科进行等级赋分呢?下面以山东省选课等级赋分规则为例,对物理这一科目在算法上进行讲解。其余科目一样

注:举例数据 名字全是系统生成的化名,但成绩和班级都是真实的
一:山东省等级赋分规则
在这里插入图片描述

图为山东省等级赋分规则
在这里插入图片描述
该校共有1158名学生参加物理考试。计算步骤如下

1:不占位排序算法

先对学生成绩进行排序,排序规则为成绩相同,名次相同,如 A B C D四位学生 成绩分别为 98 87 87 34 名次则为 1 2 2 4即不占位排序。使用mysql数据则很容易完成这个排序工作

select  studentName,score  ,RANK() OVER(order by  score DESC ) ranks  from exam  where 科目=物理

2:确定等级区间

如第一区间是0-3%。那么第一区间 最高名次为 1158 * 0.03= 34.74,这里采用向下取整原则,Math.floor(34.74),第34名就是3%的最高名次。这里,很多学校和软件在这里四舍五入了,这样有可能会把第二区间的第一名纳入到第一区间,造成计算错误。
如图:
在这里插入图片描述

实际上这里的前3%的名次最高到25名,共计34个学生。这样我们就可以获取该区间原始分最高分和原始分最低分为98-84分。计算完后,按赋分等级公式计算:

(原始成绩区间最高分-等级区间最低分)/ (考生原始分-原始成绩区间最低分)

(等级区间最高分-转换后的等级分) / (转换后的等级分- 赋分区间最低分)
简化公式为:为了java开发方便计算可将公式转换转换为
1:原始最高分-原始分=a
2:区间最高分- 原始分=b
3: a/b=y(注意Y不是原始分) 带入公式得:(区间最高+y * 区间最低 ) / 1+y = 最终赋分

在这里插入图片描述
(对上面的代码我必须吐槽,全是坑啊!!!!,为了怕算错,分开一步一步的写,愣是把一数学硕士给写晕)

如:17班的肖泽强 物理87分, 在前3%内 首先确认其等级为A , 经过等级赋分计算:
在这里插入图片描述
肖泽强最终物理为93分。
这里得93分 是 显示成绩,数据库中保留的则是92.9285分。为什么要保留4为小数呢?
1:是后面还需要进行线性拟合等运算,以预测学生的成绩和 班级 科目的增量运算,这需要精确的数值。
2:是计算总排名。
实际上,很多学生科目总分相同,但实际高考中存在同名次的情况几乎不会发生,我们也是模拟了真正高考的算法,小数点精确到了4位数。这也就是我们为什么看到有的学生总分相同,但名次却不同的原因。那么真的遇到相同总分、相同名次的情况怎么办呢?实际的算法是先看语数外总分谁高谁就排到在前面,再看综合分,这样如果还是相同,那就名次相同。

班级排名

班级排名很麻烦,因为必须考虑到这个学生是否走班,如果走班,该生的成绩不能在本行政班排名。

区间统计

完成赋分后,对区间统计就简单多了
在这里插入图片描述
这样我们可以通过数据库完成区间统计,效果如下:

在这里插入图片描述

就写这么多吧,这几天又在搞增量算法了,在工作量和难度上,这两根本不是一个等级,程序员真特么累!
希望天下老师没这么累,以前我也是一名教师,知道老师们也很辛苦,欢迎使用这款软件,希望能够帮助各位老师们从繁琐的工作中解脱出来,有任何的建议,敬请下面留言

测试地址
http://117.50.162.64:8082/
可以注册,也可以使用测试账号:xm123 密码 :123456

这篇关于山东新高考等级赋分如何快速转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492611

相关文章

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到