作者:纪筱陌_ | 来源:互联网 | 2023-09-03 04:25
分班要求:每个班级对口学校与非对口学校的人数几乎相同
每个班级总人数相同
每个班级的男生及女生数量大致相同
成绩分为3个档次,A,B,C其中每个档次每班的人数大致相同
保证军人子女,教师子女都分散开
双胞胎必须在一个班级,同名的不可以在同一个班级
4 个解决方案
双胞胎必须在一个班级//第一条规则,优先,先找双胞胎,放到同一个班
同名的不可以在同一个班级 //第二条规则,查找重名,然后随机放到不同的班
保证军人子女,教师子女都分散开//第三条规则,把这类人分散到不同的班
以上三条规则是硬性的,需要优先实现。
然后下面的四条要求,就要基于上面的三条。先统计已分配的,然后将总数和平均数求出来,然后依次从剩下人数中抽取符合要求的,逐个班分配。
比如对口学校并且档次为A的女生n个放到1班。对口学校并且档次为B的男生k个放到2班。
每个班级对口学校与非对口学校的人数几乎相同
每个班级总人数相同
每个班级的男生及女生数量大致相同
成绩分为3个档次,A,B,C其中每个档次每班的人数大致相同
基本同意zhi_ai_yaya的看法。
优先实现双胞胎、重名、军人/教师子女。
然后,排队列,分别是A男生,A女生,B男生,B女生,C男生,C女生
每个队列的依次向各班分配即可。
很简单,把全部的双胞胎、重名、教师/军人子女先拉出来先进行分班。分完后剩下的按男女和成绩排序,根据已分配的男女数量,成绩,把排序后的一般学生抽取出来进行分配即可。