ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 龙行九州

[讨论] 教育应用:分班(Excel_VBA) 规范化通用化应对各种要求 的实现

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-31 14:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:其他编程应用
无法理想化:
1、分班科目较多,互相牵扯,数据本身根本分不平衡。语数英物政史地生
2、所谓的种子选手的界定VBA是不知道的,同时语文种子选手并不一定是数学种子选手。
所以导致种子选手无法平衡,多学科种子汇集到一人身上的各学科能同步的种子更是难以平衡。

为此,拟思路:

对原始分数进行预备处理,夸大数据,进入目标了的数据之间差别小,没进入的和进入了数据差异巨大,使目标生分配均衡,
>本学科目标分,原始分数+1000
<本学科目标分,原始分数*0归0
增加一科目:该生主学科达标科目数*10000+短线学科达标科目数*1000,删除本栏全零的学生。可按此栏排序划出批次。
先对这一批学生分班。
再同法二批分班……
最后将分数修改回原始分数,补分剩下的学生,达到最终的平衡。

楼上的试试看

还没开学我试着分班,目标生也没分均衡。也在寻找更好办法。其实本身如何确定出不同批次的学生本身就是很难的,因为学科多数据间互相牵扯,数据是无法平衡的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-31 16:31 | 显示全部楼层
本帖最后由 龙行九州 于 2013-7-31 16:32 编辑
lzyamo3057 发表于 2013-7-18 09:22
根据您的程序,我进行了一次试分班,然后按总分降序排列时,发现试分班考虑到各科平均分与总分平均分是非 ...


我抽时间试排了一个年级,也如此,各班优秀也即种子选手人数分布不均匀。我想解决办法是:
分批次+原始分极端化+最后一批次补平衡时极端化的原始分还原
将各科超过目标分的分数*1111,未超过的分数化成0分。增加两辅助列,统计长短线学科有几学科达标*系数,长线学科得到的结果要比短线学科得到的结果大得多。
进行VBA分班
上述过程可以这样分几类型进行几次分:将数据按辅助列的主副学科排序后,主学科全部达标生搞一次分,再补分其它达标生。
将上述每生分数还原,补加进剩余学生进行平衡分班。
此方法是重在目标生分班后,再补分。

TA的精华主题

TA的得分主题

发表于 2013-7-31 17:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 灰袍法师 于 2013-8-1 04:51 编辑
龙行九州 发表于 2013-7-31 16:31
我抽时间试排了一个年级,也如此,各班优秀也即种子选手人数分布不均匀。我想解决办法是:
分批次+原始 ...

我也觉得增加批次列无用,原因跟你说的一样,优秀生如果有多个优秀科目,就无法对其分批。

但是我实在想不明白为什么你说种子学生分不均匀,你还是上传数据吧。

我自己测试 1200人分24班,每人6科成绩,6科都要分配种子学生
结果是种子学生分得极度均匀,只要有可能平均分配,分出来的种子生差异就是0人
如果不能平均分配,那么差异只有1人,即使有些种子学生是多科目种子也是如此。

同时每科平均分差异不超过 0.5 分。

这个结果应该说是完全够用了吧?

这个附件应该是我的最终版了,增加了 2人交换优化,即:如果交换两个学生,可以使结果更好,那么就交换,直到无法找到交换一对学生即可改善为止,或者达到时间限制为止,默认是用 180秒 时间去交换优化。

分班_随机算法多批次_兼容人手分班_2交换优化.rar (56.9 KB, 下载次数: 1013)


补充内容 (2013-8-21 02:51):
附件有个小bug,每班人数不能低于10人。
修改方法,在 batch 模块,在
If batch_size > total Then
    Range("B30").Resize(total, keys).Value = all_data
后面增加一句
    Call rand_solve

补充内容 (2013-9-7 03:27):
再次补充,本附件不支持 保留人手分班数据,更新的附件在第三页的26楼。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-8-1 07:07 | 显示全部楼层
灰袍法师 发表于 2013-7-31 17:00
我也觉得增加批次列无用,原因跟你说的一样,优秀生如果有多个优秀科目,就无法对其分批。

但是我实在 ...

因为各学科的老师只关心本学科的种子选手,同时种子选手的界定上,我们这不够科学:如79分模拟进县一中的线,则78就不是种子了。从79分上来说,各班进线人数并不一定均衡的。

所以我想将原始分数极端化来解决这个问题。

种子选手,是综合所指的话,这个均衡软件是很好的。

从分数均衡上来说,这个多次平衡法是我遇到分班类算法最好的VBA。

TA的精华主题

TA的得分主题

发表于 2013-8-1 20:00 | 显示全部楼层
龙行九州 发表于 2013-8-1 07:07
因为各学科的老师只关心本学科的种子选手,同时种子选手的界定上,我们这不够科学:如79分模拟进县一中的 ...

一点都不懂你在说什么。。。。。。

单科的种子选手,肯定就是指 该科目分数超过xx分的所有人吧?

那么直接用我在上面的做法, 单科优秀 = if (单科分数 > xx , 100, 0) 就可以了。

TA的精华主题

TA的得分主题

发表于 2013-8-2 00:23 | 显示全部楼层
一点建议哈,其实之前有人提到。

既然想做通用的,能不能把分班的依据参数化,学习成绩是一个,那还有体育成绩、性别、生源地、是否住宿,等等~

然后这些参数也可以归类,同一数据种类的用同一个过程,比如性别和是否住宿就是同一类的。这样一来,类似分班的问题都可以解决了~

点评

不大可能通用,太多乱七八糟的要求了。  发表于 2013-8-2 02:18

TA的精华主题

TA的得分主题

发表于 2013-8-2 05:10 | 显示全部楼层
lee1892 发表于 2013-8-2 00:23
一点建议哈,其实之前有人提到。

既然想做通用的,能不能把分班的依据参数化,学习成绩是一个,那还有体 ...

其实我的附件就已经可以做到:所有能够“数字化”的分班依据,都可以分平均。
性别可以转化为 男性1000分,女性0分,把这个“性别科”的“成绩”分平均了,自然每个班的男女生人数也就平均了。
住宿也可以转化为 住宿50分,不住宿0分,那么把“住宿科”的“成绩”分平均了,自然每班的住宿生人数也是平均的。
如此类推
要求特殊学生=数学单科 33.5-77.8 分之间,而且不住宿的女生,要求每班的这种学生也要平均,也可以做到的!
所以我一直不理解楼主为什么说“种子”学生分不平均,他也一直没说什么算是种子学生。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-8-2 12:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-8-4 09:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 龙行九州 于 2013-8-4 17:16 编辑
灰袍法师 发表于 2013-8-2 05:10
其实我的附件就已经可以做到:所有能够“数字化”的分班依据,都可以分平均。
性别可以转化为 男性1000分 ...


未命名.jpg
大师的程序非常好!
种子现在已经分均了,是方法的问题,只是分的项目非常多:
名科成绩(8个) 各科及格100分未及格0分 各科总分进线120没进0 各科单科+总分同时进线120分,只要单科进线就100没0分……………………
分班项目高达49个! 还没考虑走住问题呢。
设置为计算 70万次或更高次,算了很长时间,不怕时间长,只要均衡!……………………上附件
非常均衡的VBA分班.7z (38.58 KB, 下载次数: 966) 作者:灰袍法师
…………………………………………………………………………………………………………………………………………………………
        灰袍大师的分班VBA是目前我使用众多分班功能软件中最好的!!比一些软件都好!
…………………………………………………………………………………………………………………………………………………………

点评

龙兄的工作不简单吖,49个分班项目,哈哈哈。  发表于 2013-8-4 16:47

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-8-17 20:39 | 显示全部楼层
灰袍法师 发表于 2013-7-31 17:00
我也觉得增加批次列无用,原因跟你说的一样,优秀生如果有多个优秀科目,就无法对其分批。

但是我实在 ...

收藏法师的经典新作.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-13 12:27 , Processed in 0.051563 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表