今天给学生简单排课,想到用算法实现一下,很有趣!大家进来讨论!
首先我熟悉C#,C,delphi,大家如果用这些语言写,我比较熟悉!
场景如下:
拟对36个教学班(共1344人)进行计算机网络课程培训,分四个晚上进行,每晚上共有两个机房(共1344/4=336台电脑可供使用,其中A机房有170台电脑,B机房有166台电脑)
要求:尽量保证以每整个教学班为单位,充分占用A,B机房电脑,如果实在不行,最好分
解某一个教学班人数,当然分解的教学班越少越好!!
想了半天,没有好的思路,希望大家支招,我认为就是找符合条件的组合,有别于网上复杂的排课算法吧!!
回答的同志, 巨分在这里领取 http://community.csdn.net/Expert/topic/5540/5540499.xml?temp=.380932
------解决方案--------------------如果按平均,每晚有9个班培训,但是由于每班人数不等,所以必须每晚培训的班数也不一样,还有就是每晚必须培训336个人,否则4晚培训不完 ,所以现在的问题就是如何把36个班分成4组,每组336人,同时每组有分成来两个下组,人数分别为170,166,记得有个0 1背包的算法,不知道可以用上不?