2301_76953352 2023-03-11 16:02 采纳率: 61.5%
浏览 46
已结题

刚才的排监考问题,加一些条件,请问怎么修改

img

29个人里面有6个语文,6个数学,6个英语,4个物理,3个政治,3个历史,教语文的不能排监考语文,依次类推

  • 写回答

3条回答 默认 最新

  • 文盲老顾 WEB应用领新星创作者 2023-03-11 16:26
    关注

    你这不够29个老师啊,28个

    答案不见了,算了,我给你多安排两个老师,你自己看着调整,不用的就可以删除

    # 老师的科目用 ['科目'] 来表示,有几个就 * 几,1个可以不用 *
    s = ['语文'] * 6 + ['数学'] * 6 + ['英语'] * 6 + ['物理'] * 4 + ['政治'] * 3 + ['历史'] * 3 + ['体育'] + ['美术']
    # 初始化老师信息
    teachers = [{'tm':0,'科目':_,'监考科目':[]} for _ in s]
    # 初始化监考场次,这里也可以随便改
    场次 = {
        '语文' : [13,120],
        '英语' : [16,100],
        '数学' : [16,100],
        '物理' : [8,60],
        '道法' : [8,60],
        '历史' : [8,50],
        '化学' : [8,50]
          }
    # 这里就不要动了
    while len(场次) > 0:
        科目 = list(场次.keys())[0]
        场数,时间 = 场次[科目]
        teachers.sort(key = lambda x:x['tm'])
        used = 0
        i = 0
        while used < 场数:
            if teachers[i]['科目'] != 科目: # 这里是同科目不监考设置
                teachers[i]['监考科目'].append(科目)
                teachers[i]['tm'] += 时间
                used += 1
            i += 1
        del 场次[科目]
    # 按老师科目和监考时间排序
    teachers.sort(key = lambda x:(x['科目'],x['tm']),reverse=True)
    # 输出信息
    for i,teacher in enumerate(teachers):
        print('安排{},老师科目:{},监考科目:{},用时:{}'.format(i + 1,teacher['科目'],teacher['监考科目'],teacher['tm']))
        
    
    安排1,老师科目:语文,监考科目:['英语', '数学', '化学'],用时:250
    安排2,老师科目:语文,监考科目:['英语', '数学', '化学'],用时:250
    安排3,老师科目:语文,监考科目:['英语', '数学'],用时:200
    安排4,老师科目:语文,监考科目:['英语', '数学'],用时:200
    安排5,老师科目:语文,监考科目:['英语', '数学'],用时:200
    安排6,老师科目:语文,监考科目:['英语', '数学'],用时:200
    安排7,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排8,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排9,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排10,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排11,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排12,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230
    安排13,老师科目:美术,监考科目:['数学', '物理', '道法'],用时:220
    安排14,老师科目:物理,监考科目:['语文', '道法', '历史'],用时:230
    安排15,老师科目:物理,监考科目:['英语', '数学'],用时:200
    安排16,老师科目:物理,监考科目:['英语', '数学'],用时:200
    安排17,老师科目:物理,监考科目:['英语', '数学'],用时:200
    安排18,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排19,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排20,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排21,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排22,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排23,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230
    安排24,老师科目:政治,监考科目:['英语', '数学'],用时:200
    安排25,老师科目:政治,监考科目:['英语', '数学'],用时:200
    安排26,老师科目:政治,监考科目:['英语', '数学'],用时:200
    安排27,老师科目:历史,监考科目:['英语', '数学'],用时:200
    安排28,老师科目:历史,监考科目:['英语', '数学'],用时:200
    安排29,老师科目:历史,监考科目:['英语', '数学'],用时:200
    安排30,老师科目:体育,监考科目:['英语', '物理', '历史'],用时:210
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月13日
  • 已采纳回答 3月11日
  • 修改了问题 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)