首页 > 编程语言 >【Python】排班系统与排列组合

【Python】排班系统与排列组合

时间:2024-06-15 13:10:53浏览次数:22  
标签:李周 join Python import permutations 赵钱孙 排班 print 排列组合

先看最简单的情况,若有赵钱孙李周5人需要排班,一人一天,情况如下:

from itertools import permutations

for p in permutations('赵钱孙李周'): #全排列
    print(''.join(p))

此时会打印出 '赵钱孙李周' 5人的所有情况。现在假如第一天的人必须是周,则需要加上判断即可:

from itertools import permutations

for p in permutations('赵钱孙李周'):
    k = ''.join(p)
    if k[0] == "周":
        print(k)

还可以有更加复杂的条件,比如第一天必须赵,第四天必须李

from itertools import permutations

for p in permutations('赵钱孙李周'):
    k = ''.join(p)
    if k[0] == "赵" and k[3] == "李" :
        print(k)

结果:

 现实中的情况往往更加复杂,比如5人需要分在10天排班,1人2天,每人的班不连续,最后一天必须是赵,第一天不能是周,第3天不能是李

from itertools import permutations

for p in permutations('赵钱孙李周赵钱孙李周'):
    k = ''.join(p)
    if k[0] != "周" and k[-1] == "赵" and k[2] != "李" and all(k[i] != k[i+1] for i in range(len(k) - 1)):  #第一天不能是周,最后一天必须是赵,第3天不能是李,每人的班不连续
print(k)
部分结果:

标签:李周,join,Python,import,permutations,赵钱孙,排班,print,排列组合
From: https://www.cnblogs.com/shan-gui-yao/p/18249216

相关文章

  • python下的自动调度
    目录编写一个自动发送每日电子邮件报告的脚本编写一个自动发送每日电子邮件报告的脚本包括以下几个步骤:安装必要的库:用于发送电子邮件的smtplib和用于处理电子邮件内容的email库是Python标准库的一部分。我们还需要安装schedule库来安排每日任务。设置电子邮件服务器:您需要一......
  • 如何入门Python爬虫,这就是答案!
    “入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习。另外如果说知识体系里的每一个知识点是图里的点,依赖关系是边的话,那么这个图一定不是一个有向无环图。因为学习A的经验可以帮助你学习B。因此,......
  • 基于Python+scopy实现的渗透测试工具对网站URL以及端口进行漏洞检测系统
    目录摘要2Abstract3第1章绪论51.1研究背景与意义51.2国内外研究现状和发展趋势51.3本论文主要工作及组织结构61.3.1论文主要研究工作61.3.2论文的组织结构6第2章web安全评估及测试的介绍82.1渗透测试82.2web安全评估8第3章渗透测试及安......
  • 【PYTHON】原创·久黎社工开源
     社工api:在线Q绑查询手机号官网输入qq号即可查询还支持反查https://zy.xywlapi.cc随机一言api:绵阳耳关明皿网络科技-API盒子-接口盒子-免费API大全-www.apihz.cn​​​​​​API盒子提供各种免费API接口。https://www.apihz.cn代码:#导入库importrequestsimporttime......
  • SOFTS: 时间序列预测的最新模型以及Python使用示例
    近年来,深度学习一直在时间序列预测中追赶着提升树模型,其中新的架构已经逐渐为最先进的性能设定了新的标准。这一切都始于2020年的N-BEATS,然后是2022年的NHITS。2023年,PatchTST和TSMixer被提出,最近的iTransformer进一步提高了深度学习预测模型的性能。这是2024年4月《SOFTS:Effi......
  • 【Python】Python实现解压rar文件
    Python实现解压rar文件零、需求最近在开发一个填分数的应用,需要用到selenium,那么自然需要用到浏览器,浏览器内置到应用中,但是上传到GitCode的时候被限制了,单个文件大小只能是10M以内。所以只能压缩,分卷,用的时候再解压就好。zip的分卷解压要合并后才能解压,太占用磁盘资源了,因此用r......
  • python数据分析-淘票票电影可视化
    一、研究背景和意义在当今数字化和媒体饱和的时代,电影产业不仅是文化的重要组成部分,也是全球经济的一大推动力。电影不仅能够反映社会现实和文化趋势,还能预示和塑造公众的兴趣与期待。因此,深入分析电影数据集具有重要的实践和理论意义。通过对电影数据进行描述性统计分析,在电......
  • 【2024】 python下载快手无水印去水印视频
    无水印视频下载#coding=utf-8importrequestsimportreimportjson##url分享短视频链接#defdownload(url):headers={'User-Agent':util.window_user_agent}#获取短连接码sub=re.findall('https://v.kuaishou.com/\w{6}',......
  • 浔川计算机v1.1——浔川python科技社
    浔川计算机v1.1importtkinterimportmathimporttkinter.messageboxclassCalculator(object):#界面布局方法def__init__(self):#创建主界面,并且保存到成员属性中self.root=tkinter.Tk()self.root.minsize(280,450)......
  • Python如何离线安装第三方库?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【斌】问了一个Python第三方库离线下载的问题,问题如下:求教大佬,这个库(python-docx/),能下载下来吗?我是链接另存为,但是速度太慢?二、实现过程这里【莫生气】给了个思路如下:直接pip安装就可以了吧?试试看加个源【斌......