当前位置:首页 >> 农林牧渔 >>

优解算法实现高校分班程序设计分析


第1 卷

第3 期 

华北 科技 学 院学 报 

20 0 4年 9月  

简 化 的最 优 解 算 法 实 现 ①  
— —

高 校 分 班 程 序 设 计 分 析 
刘现 国 汪 永 高   ,
( 北科技 学 院 , 华 北京 东 燕

郊 110 ) 061  



要 :针 对 高 等院校 分 班 目的 、 程进 行 了分 析。 对 分班 中如 何 解 决 性 别 比例 、 源 地平 衡 分 配 的 问题 , 过 生  

进行 了深入 的算法 实现 分 析 , 明确 了寻 找 最优 解 的 问题 本 质, 并对 关键 过程 进 行 了阐述 与 分析 。  
关键 词 :最优 解 ; 高校 分 班 ; 法设 计  算

中 图分类 号 : 3 1 TP 9 

文献 标 示码 : A 

文章 编 号 :6 2 1 9 2 0 )3—0 9 1 7 —7 6 (0 4 0 0 4—0   3

新生 分班是 高校 招生 工作 的延 续 , 由于 当前  招 生规模扩大 , 新生人数大 幅增 加 , 至少都是 上千  人 , 生分班 工 作量非 常大 , 新 编制 分班 程序 , 现  实 自动分班成为必然选择 。由于高等学 校分班 目的  重在学 生 管 理 , 求 班级 间状 态平 衡 , 要 即不 同性  别 、 源地 等人数各班要基本 一致。班级人数 、 生 性  别 人数 、 源地 人数等属性 , 生 在分班过 程相互 交错  影响 , 加之 学生 数量较 多 , 因此 , 寻求一 种高效 的  实现算法 , 就成 为程 序设 计 的关键 。笔者 在进 行 
分 班 程 序 设 计 过 程 中 , 分 班 问 题 的实 质 、 班 过  对 分

数量差别要尽 可能小 。   再 回想现 实 中一名新生 的插 班过程 。一名新  生到来 , 首先 明确那个 省的?性别 ?( 性别就不需  额 外 查 询 了 , 是 在 我 们 脑 海 里 是 有 这 个 概 念  但 的) 。假 设为 A省 , 生 。然后 , 男 查询 哪个 班级人  数最少? 哪个 班 级男 生 最 少? 哪个 班 级 A 省人  最少?综合 以上条 件 , 生分 配 到一个恰 当的班  新 级中, 使各班级状 况基 本一致 。进一步 细想 , 就会  发现 , 即使每 次分 配多名 新生 , 细化 分 班过程 , 本  质上也 是按 上述方式进行 的。  
所 以 , 者认 为 : 班本 质上是班级“ 分” 笔 分 瓜 学 

程的实现 , 取得 了一些新 的认 识与体会 , 宽 了分  拓

班程序设计思路 , 提高 了程 序的执行效率 , 得 了 取  
较 为 理 想 的分 班 结 果 。  

生, 学生 加入 那个 班级 , 依赖 班级 间 的 比较关 系 。   学生是加入人数 “ ” 少 的班级 , 达到 班级 间各 种状  况 的基本 一致 , 现最终 分 班 目的 的。对 于班级  实 的个 数 , 一方 面 , 于 高等 院校而 言 , 以满 足招  对 是 生计 划来进 行 的 , 预先 确定 的 ; 是 另一方 面 , 学生  总人数 只是班 级个 数确 定 的一个 条件 , 它还 受到  高校其他方 面的影响 , 以 , 所 班级个 数是 分班的一  个先决条件 , 由分班 人员 综合 实 现多方 面情 况  是
确定 的。  

1 分 班 程序 设 计 的原 则 
分班就是分 学生 , 生情 况 决定分 班 结果 是  学 人们 对 分班 的普 遍 看 法 。这 是 因为 在实 际工 作  中, 分班 的对象是 学 生 , 班需 要满 足 的条 件 , 分 也  是学 生统计数据 , 如班级人数 , 、 男 女生数 , 省人  各

数 等等 。以上看法 , 作为实 际工作对待无可厚非 ,  
但是 , 如果 以此为 出发点 , 即按学生情 况统计数 据 

因此 , 分班程序设计 中只需明确两点 :  

进行 分班 , 作为程序设计分 析却不尽然 。  
首先 , 一 看 分 班 目的 。理 想 的 分 班 目的  看
如下 :  


第一 : 学生 自身属性 。  
第 二 : 级 间状 态 。 班  

第一点 的要 求显 而 易见 。对 于 第二 点 , 时  此 各班人数 基本一致 
仍 需 注 意 : 于 分 班 时 刻 的班 级 而 言 , 对 只有 多 与 少 



二、 各班男 、 比例基本一 致  女 三、 各班 同一 生源地 男 、 比例基本一致  女 也就是说 , 班结 果是 尽 可能 使各班 级 间相  分 同类型 的的人数 基本 相 同 。无 法相 同时 , 级 间  班
① ②

的状 态。班级 中 的学 生情 况 的统计 数 据 , 只是 分  班 的结 果 状 态 , 不 是 分 班 时刻 的 班 级 状 态 , 并 统计   数 据最终反 映 的也 是 班级 间多 少关 系 。因此 , 如  能够 明确班级 间的 比较关 系 , 不需要 学 生属 性  就

收稿 日期 :0 4 0 —1  20 — 2 0 作者 简介 : 刘现 国 (9 3 ) 男 , 北邯 郸人 , 17 一 , 河 大专 毕业 , 华北 科技学 院现 代教 育技术 中心 助理 工程 师 。  

9  4

第3 期 

刘 现 国等 : 化 的最 优解 算法 实 现  简
表 2 5名 A省男 生分 配 过程及 状 态码 变化   
、 \  
\ 、  

的统计 数据 , 就是 说 , 班 与学 生 统计 数 据 无  也 分 关, 仅仅 依 赖 于 班级 间状 态 ; 如能 够 保证 分 班 过  程, 每一 位新 生分 配 , 都能 使得 各班级 状 态平衡 ,   那么, 就可 以实现分班 目的。进一步分析 , 设班级  间状 态为 t, , , , 1t … t 分班 也就 是 为每个学 生 , 2   找  到一 个满足 多个 限制 条 件 的解 。至 此 , 我们 对 问 



生 
l   2   3   4   5  

状 态码 类别 、\
班 级人 数 

 
l l 0 l 0 l l lo o) 0 l l  l  0   l (o   1 

班级男 生数 
A省男 生数 
相“   与” 加入 班级 

ll 0 l   儿  0 l llo o  0 l 0  l(o ) 1  
l l 0 l 0 l l l o o  0 l l   l   0  l ( o ) 1  
1l 0 1 0l ll l  1  0   l  1 班  2班  3班  1班  0l l  2班 

题的分 析更 加清楚 、 严格 , 加一 般 , 更 更加 符合程  序设计 的算法要 求 。  

2 分 班 的 实现 
由以上分 析看 出 , 班 问题 可 以归类 于算 法  分
设计 中寻求最优 解问题 , 对于具体 的分班 而言 , 但   比之 于最优解 问题要 简单——班级 可能的状态情 
况 有 限 。笔 者 的做 法 是 : 出 所 有 状 态 , 后 直 接  列 然

“1 (0 ) , 示 状 态 码 因 全 “ ” 置 为 全  110 0 ” 表 0而

“ ” 以下各 表 中表示 与此相 同。 1,  

5名 A省女 生分 配过 程 及状 态码 变 化情 况 ,  
如 表 3所 示 :  
表 3 5名女 生分 配过 程及 状 态码 变化   

进行组 合状态 判 断 , 确定 结 果。下 面是详 细 的说 
明。  



 
\ \  

新 生  
l   2   3   4   5  

2 1 班级 间状态表示  . 用“ ” 1 表 示班级 状 态 ,0 表示 “ , 0 与“ ” “” 多” 不 

状态码类别 、\
班级人 数  班级女 生数  A省女 生数 
相“   与”

 
0 l l l o o  l 0 l 0  l (o ) 0 l 0     l ll0 l  l   1110 1 1   
0 l l  0 l 0

ll00  l(0 )

0 0 1 l o o   l  l  l ( o ) l0 0 0 1 1o o   l  1  1 (o ) l0
0 00 l 1  0   l0 l 

允许加入新生 ; 1 表示 少 , “” 允许 加 入新 生 。班 级 
间状 态组成一 个 长度 为班 级个 数 的字 符 串 , 其  称 为状 态码 。状态码位数 与班 级编号对 应。如第一 

加入 班级 

3 班  l 班  2班  3 班 

l 班 

位, 就对应 1 。第二位对应 2 , 次类 推。每  班 班 依
个 条 件 均 设 一 个 状 态码 , 态码 初 始 状 态 为 全  状
“ "  1 。

3名 B省 男生 分配过 程及 状 态码 变化情 况 ,  
如 表 4所 示 :  
表 4 3名 B省 男 生分 配过 程及 状态 码变 化   
、 、

2 2 分 班 过 程  .

逐 一对新生 进行 班级 分 配。新 生 加入 时 , 与 
新生 属性相关状态 码相 “ ” 所得 结 果码 中 为“  与 , 1

—\   新 生  状态 码类 别 ——\   1   班级人 数  班 级男 生数  B省 男生数 
相“   与” 加入 班级 

2   00 1  l 1o o   l (o ) l0 l 
00 l  2班 

3   1loo  l(o ) ll 0  10 0 
10 0  l班 

“ 的位数所对应 班级 , 即为新生所需 分配班级 。如  果有 多位 为 1 , ” 随机 选 择一 位 。分配 完 毕 后 , 所 
有 相 关 状 态 码 对 应 位 置 “ ” 然 后 进 行 下一 名 新 生  0,

0l l   0l 0  l1 l  
0l 0  3班 

分配 , 如此循 环 直 至所有 新 生分配 完 毕 。当状 态 
码 各 位 均 为 “ ” , 状 态 码 全 部 置 “ ”  0时 将 1。 2 3 人 工 模 拟 分 班  .

2名 B省 女 生分 配过程 及状 态码 变 化情 况 ,  
如 表 5所 示 :  
表 5 2名 B省 女 生分 配过 程及 状态 码变 化   
、 、

例: 某一 时刻 , 专业需要进行 分班的新 生情  某
况 , 表 1所 示 : 如  

表 1 某专 业 需要 分班 的新 生 情况 
A 省  B省 

\ 状态 码类 别

~ ~

新 生 次 第  ~~~\  

l  
0l l  11 1  ll l 
0l l 

2  
01 0  11 O  ll 0 
0l 0 

班级 个数  总计人 数  男  女 A 省  B省 
男  女  男  女 
3   l  5 8   7   1  0 5   5   5   3   2  

班级 人数  班级女 生数  B省 女生数 
相“ ” 与  

5名 A省男 生分 配过 程 及状 态 码变 化情 况 ,  
如 表 2所 示 :  

加 入 班级 

2班 

3班 

9  5

第 1卷

第 3期 

华 北科 技学 院学 报 

20 0 4年 9月 

全部分 配完 毕后班级情况 , 如表 6 所示 :  
表 6 分配 完 毕后 班级 情况 
A 省  B省 

个专业 ,0余 个 班级 进行 分 班 操 作 , 果非 常 理  9 结
想, 完整程 序代码略 。  

3 设计 分 析 
3 1 执 行 结 果 分 析  .

班级 
1   2   3  

人数  男  女  A省 
5   5   5   3   3   2   2   2   3   4   3   3  

B省 
男  女  男  女 
l   2   2   2   2   l   2   l   2   l   l   l   O   1   l  

理 想 分 班 结 果 的 出 现 并 非 偶 然 。这 是 因 为 :  

班级状态 是在“ ” “ ” 间变 化 , 条件 属性人  0 与 1之 各 数要 么相 同 , 么相差 为 1 要 。相 同或相 差为 1 就  , 是现实分班 中最理想 的结 果 。  
3 2 时 间 和 空 间代 价 分 析  .

从手 工模拟可 以看 出 , 整个分班过程 简单 , 结  果理想 。判断 新生 分配 班级 , 只需根 据结 果 码就  可确定 , 班级 间各条件属性人 数基本一致 , 最多相 
差为 1 。 人  

整个 程序可分为两大部 分 : 是数据排序 ; 一 二 

是 分班过 程 。由于排序 是 利用 学生 数据 库进 行 ,  
其执行 时间非 常短 , 此 可忽 略。分 班过 程是从  在 头至尾扫描一遍 学生 数 据库 , 就 是 n个 新生 的  也 逐一分配 , 时 间代 价 为 O( ) 其 n 。整 个 分 班过 程  中 , 要 开辟 的存储 空 , 需 仅仅 是 几 个状 态 码 的存  储, 其空间代价为 O( ) 1。   总之 , 经过对分 班问题 进行分析 , 把现实 问题 


2 4 设 计 说 明  . 以上 分 配 过 程 中 , 相 “ ” 果 中 出 现 多 位  当 与 结

为“ ” , 1 时 选择 哪一 位分 配 , 都不 会影 响最 终 的分 
班 结 果 , 是 班 级 编 号 不 同而 已 , 现 为 表 6中某  只 表 两 行 的互 换 。 当 相 “ ” 果 码 为 全 “ ” , 明 各  与 结 0时 说

条件有冲突 , 无法全部满足 。这种情况 的出现 , 并  不是程序 的原 因 , 而是实 际情况所致 。此 时 , 可以  选择 满足 其 中某 一条 件进 行分 配 , 班级人 数状  如
态 中为 “ ” 班级 。 1的  

般化 , 具体 问题抽象化 , 挖掘其算 法本质——寻 

求多个 限制条件 下 的最 优解 , 得程 序设 计事 半  使 功倍 , 执行效 率高 , 班结果 比较理想 。 分  
参 考文献 :   [ ] 陈林 . 1   高校 新 生 分 班 的信 息 化 管理 初 探 [] J.   自贡师 范 高等 专科 学校 学报 ,0 2 (3 :9   20 ,0 )6 —
7   0.

以上 为分班过 程 的关键 实 现 , 在完 整 的分班  程序 中 , 首先对新生数 据库 , 按性别 、 生源地排 序 ,   再按上述方 法进行分班 。排序 是为了能够一个条  件一个条件地 进行 , 而避 免许 多历 史状 态 的记  从 忆, 也是分班程 序设 计 的重 要一 环。笔 者 已利 用  上述程序 , 成功 的对我 院 2 0 0 3年 3 0 名新生 ,9 00 2 

[ ] 吴艳辉 . 种“ ” 2  一 之 字型 的分 班方 法及 程序 [] J.  
电 脑 开 发 与 应 用 ,0 2 ( 8 :6. 2 0 ,0 )4  

The r alz to   f t   i plf e o i a   ol i n  l o ihm s:   e i a i n o  he sm iid  ptm ls uto a g r t  
— —

An Ana y i  f pr r m   sg   f c a s di ii n n Hi h r I s iuto     l s s o   og a de i n o   l s   v so i   g e   n tt i ns
LJ X &n gu W AN G  n -a   U — o, go g g o

( rh C iaI si t f ce c n   e c n l y Not   hn  n t ueo  i ea d T ah oo ,Ya j oB in — at 1 1 0 ) t S n g ni   e igE s a j   0 6 1 
Ab t a t Th   r il  e p y a ay e   h   u t  ̄ a d p o e r so  ls   i i o  n h g e  n tt to s Th  u h r u t e n   s c : ea t e d e l   n l z s t ep r r c x n   r c du e   fca sd v s n i  ih ri s iu in i ea t osfrh ra a


lz  h  lo ih sraiain o  o t  e pt eb ln eo  e d ra d rs u c  ft esu e si l sdvs n W hl d n i y et eag rtm  el to   fh w ok  h   aa c  fg n e  n  eo e o h  t d nt  ca   iii z r s n s o i ie t e  


figteesneo h pi louin h riea  l oae nt   jrpoesso l sdvs n y  h se c f eo t   lt ,teat l l e b rt o  h ma  rcs  fc s  io n t ma s o c  s a o s e o e a i i
. 

Ke   o d : p i lslto casdvs n i  ih risi t n ,ag rt msd in y W r s o tma  u in,ls  iii  n hg e  t u i s lo i o o n t o h  e g   s

9  6


相关文章:
算法设计与分析试卷(A)及答案
(每小题 5 分,共 20 分) 1、采用高级程序设计语言表达算法,主要好处是: ...问题的计算复杂性分析有一个共同的客观尺度 7、②③④① 8、问题的最优解...
C语言新生分班系统课程设计
C语言新生分班系统课程设计_计算机软件及应用_IT/...添加记录函数 算法 3: ... 根据学号修改记录 算法...最后对 ZY 进行分析,若满足条件就进 行对学生班级...
程序设计五大算法
程序设计五大算法_计算机软件及应用_IT/计算机_专业资料...六、可使用分治法求解的一些经典问题 (1)二分搜索...简化的步骤进行设计: (1)分析优解的性质,并刻画...
实用算法与程序设计算法
实用算法程序设计算法_计算机软件及应用_IT/计算机...用十字链表的方式实现储存,并编写程序实现 两矩阵...实验结果: 算法时间复杂度分析: 从一个节点来看,...
算法设计与分析实验报告
年 3月 实验一 分治法程序设计 一、目的和要求 1.理解分治策略,即分而治之...贪心算法适合求解 问题的最优解或近似最优解。 2. Prim 算法通过一系列不断...
案例一:算法与程序设计思想
案例一:算法程序设计思想【基本信息】作者 单位 孙朝霞 课时 上海卢湾高级中学 1 课时 【课标要求】(一)利用计算机解决问题的基本过程 (1)结合实例,经历分析问题...
算法分析与设计程序设计题
算法分析与设计程序设计题_计算机软件及应用_IT/计算机...是说,能被其他两个数据整除,这就找到了问题的解。...的计算机操作(准确地说是通过程序设计语言)来实现。...
第6章 程序设计与算法分析(答案)
第6章 程序设计算法分析(答案)_计算机软件及应用_IT/计算机_专业资料。第6章 程序设计算法分析习题(答案) 一、选择题 1. A 6. B 11. C 2. D 7. ...
算法与程序设计综合评价练习题
3、一个算法可以用多种程序设计语言来实现。 () 参考答案:正确。 4、用计算机解决问题要经过分析问题——设计算法——编写程序——调试程序等基本过 程。 () ...
高校新生分班分寝室一体化系统的设计与实现
针对高校新生分班分寝室工作的关联性和重要性、分寝室问题算法较少等问题, 对高校分班分寝室问题进行了数学建模,设计了基于矩阵的算法实现,提出了分班分寝室一体 ...
更多相关标签:
分班算法 | 学生分班算法 | 精良分班软件 算法 | 学生分班算法源码 | 高校专业分班系统 | 算法 c语言实现 | rsa算法c语言实现 | aes加密算法c语言实现 |