vb.net 分班算法请教
各位大神,请教一个算法的设计问题,还请各位大神帮忙!
问题描述:在excel表中有学生的考试成绩,如班级、姓名、性别、是否住宿、语文、数学、英语、总分。(共1000人)。现在需要把这个电算表的学生分成15个班,要求各班平均分接近,总人数均衡、性别、男女住宿及住宿总数均衡。如果能各科平均分均衡就更好了。
之前的算法比较简单,按照总分降序,然后按S形排列如1,2,3,4,5,5,4,3,2,1,这样的形式分班。先分男生住宿再分女生住宿,在分男生在分女生。这样能够做到基本均衡。但是会使各班各科的平均分差距较大,
请教大家:1、如何设计一个算法,实现学生的分班呢?2、如果按照总分的S形分班,会造成各班男女生比例失衡,如何实现学生的调班呢。比如1班男生多,需要到3班(他们男生少),然后对应调换回来一个与1班这个男同学分数接近的男生,这样的算法如何实现。3、如果按照各科都进行一次S形分班,就会得到每个学生可能去的班级,如A同学语文分应该去2班、数学分应该去3班、英语分应该去2班,那么这个学生就去2班,请问这样的算法是否具有可行性?多谢!