| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2258 人关注过本帖, 1 人收藏
标题:学生如何分派
只看楼主 加入收藏
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
收藏
得分:3 
按APPLE0072011的思路可行???

假设一中招100个,二中招200个,三中招300个,四中招400个,为了说事方便这样假设的。那到分完成绩最好的400个时,一中满额是前400个的平均分,分完700个时,二中200个招满了,则二中的平均分是前700个的平均分,再继续分200个即共分完900个时,三中的300个也招满了,则三中的成绩是前900个平均分,存下成绩最差的100个都给了四中,则不是四中的成绩最差。这样分下来:平均分从高到低依次为一中、二中、三中、四中。可见是不符要求。

实际中四个校长决不会答应的!!!!!!
2011-11-20 20:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
从理论就应是不可行的,严格的证明没有,但据估计八九不离十了。长短不一的绳子,悬挂在同一屋檐下(平头),其重心就绝不可能在同一水平线上。

授人以渔,不授人以鱼。
2011-11-20 23:43
apple0072011
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:249
专家分:989
注 册:2011-8-17
收藏
得分:0 
回复 11楼 xs591222
你没有理解我的意思,是从头和尾同时分的:
再将两组按成绩排列各分成两组(例如男生2000人,女生1203人,则男高分组为1~1000男低分组为1001~2000女高分组为1~601女低分组为602~1203
将男高分组和女高分组按成绩从高到底蛇形分给四个学校,将男低分组和女低分组按成绩从低到高蛇形分给四个学校:记住要四组同时分
这样分下来不可能是平均的,所以最初我就问过有没有误差要求,如果要求完全平均,此题无解。

[ 本帖最后由 apple0072011 于 2011-11-21 11:09 编辑 ]

天道酬勤
2011-11-21 08:17
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2202
专家分:3862
注 册:2007-4-27
收藏
得分:0 
此题可能无解,但实际中要让4位校长相对满意的答案是存在的,那应该是有解的。

我想到一个思路:男女生各一组,从高分到低分站队,先依某一校的招生数,按几何中的等线段作图法,取相应点上的学生录取,再换另一样……
问高手,这是否行得通?如行得通,代码好像很难写!

只求每天有一丁点儿的进步就可以了
2011-11-21 10:18
我生气了
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2011-11-17
收藏
得分:3 
这边涉及到公平公正的问题
学校A比学校B好,学生C和学生D成绩差不多,学生C成绩>学生D成绩,而学生C分到B校,这种情况非常多,
既得罪人又没好处拿!!!仔细想想这是不是真要用电脑实现??

如果还是要用电脑实现,那是不难的
第一,是取出所有要排的人员
第二,是将取出的人员按男女分开到2个临时表中,称男表,女表,按分数从高到低排列
第三,将男(女)表的平均分得出
第四,将男(女)表中增加字段存:平均分。与平均分之差
第五,计算出男女比列,依此来分析每样男女人数(如A校招987人,B校招888人,写个过程分析,得出A校男888人,女99人,B校男800人女88人,举列数据只是个说明,从而达到你的:每校男女比列均衡)
第6,写一个过程,作人员分数均衡,(比如,A校每取10次,B校取9次,C校取11次。。。每一周期取的人,取的平均分,取的男女比列均横,每次谁先取,谁后取均要写个过程排序,
比如取到第17周期,
A校取6人b校取5人c校取4人d校取5人,那这一周期的取的人数总是20人,
总人数比列男女比6:4,那从总生源中取12男8女
上一周期的*分之差
男顺序是CBAD校,那就按CBAD的顺序取
女顺序是CADB校,那就按CADB的顺序取
实现分数均横

总之,按人数均衡,分数均衡,差位取人(就是比如A校招1000人,B校招790人,但是都分成15个周期取,每取一次,每取一人,分数,男女比列都要计算一下,从而取下一人是哪校取谁均重排)的原则做,如果不怕麻烦,可以从中等分数向2边取,这样,最高成成绩最底成绩不定在哪家。或是从最高开始取,那么,每次,第一次第一人就在某校。。。。

用这么麻烦的方法,主要是好向领导、家长交待,程序好写人难做。别怎么得罪别人都不知道。

*---------------以上是电脑全自动分

*---------------下面是按你原来方式,先分,再调整,不过这和手工做我想不出有什么差别。

2011-11-21 21:13
我生气了
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2011-11-17
收藏
得分:0 
以下是引用wengjl在2011-11-21 10:18:38的发言:

此题可能无解,但实际中要让4位校长相对满意的答案是存在的,那应该是有解的。

我想到一个思路:男女生各一组,从高分到低分站队,先依某一校的招生数,按几何中的等线段作图法,取相应点上的学生录取,再换另一样……
问高手,这是否行得通?如行得通,代码好像很难写!
你给我做界面。我就可以给你写算法。
你只要将学生分数表和各校所要招的人数给我,我给你写算法,达到各校平均分男女比列差异最小


写简单点我想不超过5重循环,没多大难度!

[ 本帖最后由 我生气了 于 2011-11-21 21:38 编辑 ]
2011-11-21 21:20
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:3 
男生女生分别随机分配给各学校吧

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-11-24 15:14
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2202
专家分:3862
注 册:2007-4-27
收藏
得分:0 
隐去了校名、姓名、身份证号等敏感信息,成绩是真实的,请写代码,谢谢啦!
学生分派.rar (94.54 KB)

只求每天有一丁点儿的进步就可以了
2011-11-27 15:35
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
CLOSE ALL
USE zkjhk
COPY TO ARRAY laArr FIELDS zsrs
USE bmk.dbf
RAND(SECONDS())
STORE 0 TO lnCnt1,lnCnt2,lnCnt3,lnCnt4
SCAN
  lnRound=RAND()
  DO CASE
    CASE lnRound<=laArr(1)/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt1<laArr(1)
      lcSchool='0100'
      lnCnt1=lnCnt1+1
    CASE lnRound<=(laArr(1)+laArr(2))/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt2<laArr(2)
      lcSchool='0200'
      lnCnt2=lnCnt2+1
    CASE lnRound<=(laArr(1)+laArr(2)+laArr(3))/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) AND lnCnt3<laArr(3)
      lcSchool='0300'
      lnCnt3=lnCnt3+1
    OTHERWISE
      lcSchool='0400'
      lnCnt4=lnCnt4+1
  ENDCASE
  REPLACE lqxxdm WITH lcSchool
ENDSCAN
SELECT lqxxdm,CNT(*) cnttot,AVG(tot) avgtot FROM bmk GROUP BY lqxxdm

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-11-29 00:47
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2202
专家分:3862
注 册:2007-4-27
收藏
得分:0 
感谢19楼(Tiger5392)。

试了,平均分可以了,人数有时对,有时又不对,不知道该如何修改?

有没有更好的算法,

laArr(1)/(laArr(1)+laArr(2)+laArr(3)+laArr(4)) 为什么要这样,有点难理解!看来要学的内容太多了!

再次感谢Tiger5392

只求每天有一丁点儿的进步就可以了
2011-11-30 10:31
快速回复:学生如何分派
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013610 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved