2022秋软工实践 第二次结对编程作业

针对栋哥提出的点名算法需求,本作业设计了一个算法,旨在最小化向后端请求次数的同时,最大化识别缺勤同学。问题背景为5门课程,每门90人,部分同学经常缺勤。算法通过分析学生出勤情况,确定缺勤概率高的学生,降低并发请求,提高点名质量。通过数据集生成、算法实现、E值稳定性测试,证明算法的有效性和稳定性。编程过程中,结对编程展示了优势,减少了debug时间,提高了效率。
摘要由CSDN通过智能技术生成

这个作业属于哪个课程 fzusdn社区
这个作业要求在哪里 2022秋软工实践 第二次结对编程作业
这个作业的目标 设计一个算法,在最小化向后端发送的请求次数的同时,最大化抓出缺勤同学的数量
学号 032002530
结对成员学号 032002342
结对成员博客 美女队友链接

背景

栋哥对大家第一次结对编程作业的原型设计感到很满意,为了尽快让同学们使用上软件,于是栋哥花一晚上时间开发了一个点名小程序。但是在上线运行过后,发现了一些问题:

  1. 大多数老师习惯在每次上课后或下课前的一小段时间内进行点名。
  2. 如果采用全点的方式,在这段时间里,后端服务器需要处理大量的请求,拥塞导致响应速度变慢,给点名小程序带来极差的使用体验。
  3. 采用随机抽点的方式,能够有效减少并发量,但是无法保证点名的质量,难以有效抓出没有到教室的同学。

所以栋哥急需大家设计一个算法来解决这个问题,要求能够最小化向后端发送的请求次数,最大化抓出缺勤同学的数量。

具体要求

定义5门课程,每个课程班级人数为90人,一学期共20次课。每门课程均有5-8位同学缺席了该学期80%的课,此外每次课程均还有0-3位同学由于各种原因缺席。

参数定义:

  • 请求次数:定义在一次点名中,获取一位同学是否到达课堂的情况为一次请求
  • 有效点名:一位同学缺席该课程的一次课,算法在这次课上抽点到该同学,视为一次有效点名,一次课可包含多次有效点名。

评价标准

E = 五门课程有效点名次数 总请求次数 \frac {五门课程有效点名次数}{总请求次数} 总请求次数五门课程有效点名次数

重点、难点分析

数据集的生成

该算法的输入是五门课程每门课程20次课的全部出勤情况,所以首先我们需要根据要求去生成符合实际的五门课程每门课程20次课的全部出勤情况。
同时,我们还需要考虑合理的辅助信息,如绩点、是否担任职务、历史逃课信息等,如何根据辅助信息合理地去生成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值