我是这样检查的 但是我是用的随机课表
检查不通过则重新随机课表 这样的话 班级多了的话 时间就比较长
不需要遍历吧,每个班排课的时候访问一下数组就行了 我想先问一下一共几门课都是什么? zhaoximeng 发表于 2020-5-18 10:21
安装哪个软件打开比较好啊
vscode
我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。
如果合理,那就可以参考一下我的代码。 赚小钱 发表于 2020-5-18 15:07
vscode
我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。
ok 我觉得先去看看吧 数独也是一个方向 李子豪 发表于 2020-5-18 14:40
我想先问一下一共几门课都是什么?
语数外 政史地 理化生
每个班级 每个周35节课
一天7节课 每个老师带2,3个班 咸鱼c1 发表于 2020-5-18 14:21
不需要遍历吧,每个班排课的时候访问一下数组就行了
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
3.生成第二个班的课表 访问代课老师的冲突项,如果有冲突 重新生成2班课表
4.生成3班。。
5。。。
是不是这样了? 本帖最后由 咸鱼c1 于 2020-5-18 17:28 编辑
zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
生成一个老师时间表[老师编号][时间],初始都为0
排课:
n个班课表:
for j in range(n):
for i in range(时间):
while(1):
老师编号随机
if(老师时间表[老师编号]==0):
j班课表[时间]=老师编号
老师时间表[老师编号]=1
break
输出j班课表
zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html
https://fishc.com.cn/thread-82259-1-1.html jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html
我感觉用数独可以保证当天老师去上课不会重复还比较简单考虑下 zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
简单的话就在数独哪道题上修改一下可以每个老师依次横排or竖排上课 30个班依次排就行 看看对你有什么帮助吗? 李子豪 发表于 2020-5-18 20:56
看看对你有什么帮助吗?
好的 多谢 我研究下 谢谢 jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html
我去学习下 研究下
页:
1
[2]