| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 462 人关注过本帖
标题:再次请教学生如何分派
只看楼主 加入收藏
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
结帖率:100%
收藏
 问题点数:20 回复次数:18 
再次请教学生如何分派
学生分派1.rar (91.36 KB)

工作需要均衡分配学生,近日浏览查询发现论坛前期wengjl曾发过同样的帖子,一是我个人水平有限没完全读懂高手的语句,二是没完全解决问题
这里我借鉴wengjl数据表,修改了一下人数(致谢)
报名库(bmk)中共3200人,按计划库(zkjhk)中字段zsrs人数要求分别录取到一中(招690人)、二中(招850人)、三中(招1000人)、四中(招660人),分派时,只考虑中考成绩的均衡即可(性别及毕业学校等不用考虑)
请教
1.Tiger5392版的程序结果有时人数不完全相同,如何解决,能否注解一下
2.wengjl版用平均分(pjf)来衡量均衡性,请教还有更好的方式吗
Tiger5392版语句如下
程序代码:
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,COUNT(*) lqrs,AVG(tot) pjf FROM bmk GROUP BY lqxxdm
搜索更多相关主题的帖子: RAND AND 语句 CASE 学生 
前天 16:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9845
专家分:27213
注 册:2012-2-5
收藏
得分:0 
均衡分配学生,其均衡的标准是什么?

坚守VFP最后的阵地
前天 19:50
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 2楼 sdta
确实难,t 版的是看平均分,里面的逻辑我也没看懂。如果平均分班的话,能s 型排列,这个人数又不均等,求指教
前天 20:30
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 2楼 sdta
原来是分到3个校区,比如A校区500,B和C各1000,因为整好是倍数关系,我们是像分班一样按分数高低(1234554321)蛇形分成5个,类似抓阄,A抓一个,B和C各抓两个。以此实现分数高低的均衡。可是现在分成4个校区,而且人数不均等,还要【均衡】,我也没能想明白,请指教

[此贴子已经被作者于2024-12-3 21:48编辑过]

前天 21:02
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1748
专家分:3333
注 册:2012-2-29
收藏
得分:0 
回复 楼主 chychychy
测试了一下,自动 + 手动,确有难度。
图片附件: 游客没有浏览图片的权限,请 登录注册

bmk.rar (93.14 KB)
昨天 07:19
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 5楼 schtg
您用的还是之前wengjl(https://bbs.bccn.net/viewthread.php?tid=355567&highlight=%D1%A7%C9%FA)上传数据(他的人数更细致具体到了个位数),看来也还在留意这个数据的处理,平时也关注您的帖子及回复,想看看您对程序注解和对均衡的建议,谢谢

[此贴子已经被作者于2024-12-4 08:13编辑过]

昨天 07:59
sxcl7899
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2022-6-30
收藏
得分:0 
回复 4楼 chychychy
原来分数从高到低分成5类,现在是否也可以按照5类分,假设A类的人员在3200个人中间占比30%吧,那么分到一中的A类人员为:690*0.3/3200,以此类推,确定好各类分配人员,再随机抽取,或者再结合一下平均成绩,是否更好一点呢?
昨天 08:16
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 7楼 sxcl7899
这样有一定道理,先把学生分成5类或者3类,能够更相对公平,分完再合并。这样学生录取人数下来达到【均衡】忒不好实现了,有了思路,再考虑程序语句才更有意义,谢谢
[附件]
图片附件: 游客没有浏览图片的权限,请 登录注册
[/附件]
这样想,将学生按总分从高到底分成4类,再按Tiger5392版的方式分派

以下是Tiger5392当年表达的
RAND()产生均匀分布的随机数,根据待分配的4个学校的名额,设计4个随机数该落入的区间,假如名额分别占10%、20%、30%、40%,则区间分别为(0,0.1]、(0.1,0.3]、(0.3,0.6]、(0.6,1]。由于所产生的随机数并不一定均匀,故落入4个区间的实际随机数并不一定占10%、20%、30%、40%,结果人数就不一定是正确的。需要做点微调:一种情况就是分配好了以后人为调整学校;二种情况就是修改程序(稍微麻烦一点)

[此贴子已经被作者于2024-12-4 09:39编辑过]

昨天 08:30
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2219
专家分:3882
注 册:2007-4-27
收藏
得分:0 
非常感谢Tiger5392版,当年给了我代码!最终领导没有出台派位招生的政策,但学到了思路。经T版的帮助,我就有了应对领导出台派位法招生的思路和方法,心中也就不用焦虑了!
我通过学习所理解的原理是,随机散落的机会是均等的,就像农民在田间撒种子,把一块田看作 1 ,四校的招生占比总和  =1 ,虽然各校招生数多少不一,用了T版的思路就很好地解决了问题
对每位学生写上一个随机数后,按随机数所在区间划给相应的学校,以此实现随机分配学生。

只求每天有一丁点儿的进步就可以了
昨天 08:50
chychychy
Rank: 2
等 级:论坛游民
帖 子:309
专家分:98
注 册:2015-4-18
收藏
得分:0 
回复 9楼 wengjl
我看您当年帖子【经过反反复复的计算,结果基本符合心理预期,最作一些修改,就可用于解决实际问题了】求教您如何进一步修改的,我们这里现在面临分到4个校区且人数不等的情况,学校和领导想要分数的均衡,尤其是相对高分段人数的均衡

[此贴子已经被作者于2024-12-4 09:34编辑过]

昨天 09:30
快速回复:再次请教学生如何分派
数据加载中...
 
   



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

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