咸鱼c1 发表于 2020-5-18 14:21:33

zhaoximeng 发表于 2020-5-18 10:20
我是这样检查的 但是我是用的随机课表
检查不通过则重新随机课表 这样的话 班级多了的话 时间就比较长

不需要遍历吧,每个班排课的时候访问一下数组就行了

李子豪 发表于 2020-5-18 14:40:36

我想先问一下一共几门课都是什么?

赚小钱 发表于 2020-5-18 15:07:35

zhaoximeng 发表于 2020-5-18 10:21
安装哪个软件打开比较好啊

vscode

我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。

如果合理,那就可以参考一下我的代码。

zhaoximeng 发表于 2020-5-18 17:09:09

赚小钱 发表于 2020-5-18 15:07
vscode

我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。


ok 我觉得先去看看吧 数独也是一个方向

zhaoximeng 发表于 2020-5-18 17:09:54

李子豪 发表于 2020-5-18 14:40
我想先问一下一共几门课都是什么?

语数外 政史地 理化生
每个班级 每个周35节课
一天7节课 每个老师带2,3个班

zhaoximeng 发表于 2020-5-18 17:12:13

咸鱼c1 发表于 2020-5-18 14:21
不需要遍历吧,每个班排课的时候访问一下数组就行了

你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
3.生成第二个班的课表 访问代课老师的冲突项,如果有冲突 重新生成2班课表
4.生成3班。。
5。。。
是不是这样了?

咸鱼c1 发表于 2020-5-18 17:24:17

本帖最后由 咸鱼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班课表

jerryxjr1220 发表于 2020-5-18 18:40:44

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

李子豪 发表于 2020-5-18 20:46:07

jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html


我感觉用数独可以保证当天老师去上课不会重复还比较简单考虑下

李子豪 发表于 2020-5-18 20:50:04

zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表


简单的话就在数独哪道题上修改一下可以每个老师依次横排or竖排上课 30个班依次排就行

李子豪 发表于 2020-5-18 20:56:39

看看对你有什么帮助吗?

zhaoximeng 发表于 2020-5-19 15:32:17

李子豪 发表于 2020-5-18 20:56
看看对你有什么帮助吗?

好的 多谢 我研究下 谢谢

zhaoximeng 发表于 2020-5-19 15:33:10

jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html


我去学习下 研究下
页: 1 [2]
查看完整版本: 想咨询一下,如何设计一个排课表的软件