首先我熟悉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

解决方案 »

  1.   

    把36个班的1344个学生的具体各班人数给出来。
      

  2.   

    要有广泛性,怎么给每班的人数
      

  3.   

    如果按平均,每晚有9个班培训,但是由于每班人数不等,所以必须每晚培训的班数也不一样,还有就是每晚必须培训336个人,否则4晚培训不完 ,所以现在的问题就是如何把36个班分成4组,每组336人,同时每组有分成来两个下组,人数分别为170,166,记得有个0 1背包的算法,不知道可以用上不?
      

  4.   

    补充两点:一:教学班中 最少人数为:10   最多人数为: 86   二:一个教学班就培训一个晚上
      

  5.   

    如果只要求分的班数最少,而不考虑一个班分几次的话,只要按从大到小的顺序依次填充就行了