社区
Java
帖子详情
排班算法问题(求高手指教)
shmilytea1986
2012-06-27 05:20:01
已知有N个人参与值班,每人安排值班的天数不等,N个人的总值班天数为31天,求所有可能的排班情况。
例如:值班人员有A、B、C、D、E、F、G(A值班4天、B值班5天、C值班5天、D值班5天、E值班5天、F值班3天、G值班4天,4+5+5+5+5+3+4=31)。
求高手指教。
...全文
349
7
打赏
收藏
排班算法问题(求高手指教)
已知有N个人参与值班,每人安排值班的天数不等,N个人的总值班天数为31天,求所有可能的排班情况。 例如:值班人员有A、B、C、D、E、F、G(A值班4天、B值班5天、C值班5天、D值班5天、E值班5天、F值班3天、G值班4天,4+5+5+5+5+3+4=31)。 求高手指教。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ShaneLooLi
2012-06-29
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
写 31 重循环……
[/Quote]
好吧,我负点责任。
写二重循环,外层循环是带标签的永久循环,里层循环的是日子。
做一个二维数组,用来记录已经排列的情况。第一维是日子,第二维尺度是 7 ,0 代表 A ,1 代表 B ……
开始生成排班可能之前,还需要准备二个数组。一个是排班记录数组,另一个是每一个人已排天数记录数组。
然后里层循环,第一天,看第一天的记录中,遍历已经排列情况记录数组对应日子的第二维, 0-6,看看哪个还没排,然后看看对应人的已排记录是不是已满。没满就排这个,记录在当前排班记录数组里,然后下一个日子。
没循环完成 31 天生成一个记录之后,将数组放在一个 List 里边,然后清空排班记录数组和每一个人已排天数记录数组,再来一遍。
直到第一个人无班可排,就整体退出。
ShaneLooLi
2012-06-29
打赏
举报
回复
写 31 重循环……
shmilytea1986
2012-06-29
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:
写 31 重循环……
好吧,我负点责任。
写二重循环,外层循环是带标签的永久循环,里层循环的是日子。
做一个二维数组,用来记录已经排列的情况。第一维是日子,第二维尺度是 7 ,0 代表 A ,1 代表 B ……
开始生成排班可能之前,还需要准备二个数组。一个是排班记录数组,另一个是每一个人已排天数记录数组。
然后里层循环,第一天,看第一天的记录中,遍历已……
[/Quote]
谢谢你的详细回复,可能自己把问题描述的不够全面,实际比这个复杂N倍
shmilytea1986
2012-06-27
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
给出全部约束条件吧,最没有效率的就是穷举了
[/Quote]
就是想穷举啊 然后再根据条件删除不符合的
flyhorse999
2012-06-27
打赏
举报
回复
给出全部约束条件吧,最没有效率的就是穷举了
shmilytea1986
2012-06-27
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
这个用计算机语言跑一遍就出来 了.
[/Quote]
就是不清楚跑的方法怎么设计
朗晴
2012-06-27
打赏
举报
回复
这个用计算机语言跑一遍就出来 了.
常用的排序
算法
详解(C#版)
只要是搞编程的
算法
、数据结构、操作系统、计算机组成原理这些东西都会有用到,就像医生给人治病一样,只有了解了人的内部机理、运作机制,才能很好的做到对症下药,药到病除。而上面所说的那些计算机理论课就好像人...
模拟退火
算法
解决车间工作台工作指派
问题
看了很多模拟退火
算法
的原理和程序,找到了所有的共同特点,有些网上程序有些
问题
但都一一解决了,所以,写出了属于自己的程序,主要针对我所解决的题目,一下题目供大家参考,我上传了程序,供大家参考,写的不好请...
Java计算加班时间,请假时间
import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;... } } 中间还有剩余的判断,留待你们自己去处理逻辑,比较粗糙,还请各位大佬多多
指教
我在CSDN参与的3000个帖子
2:100分急
求
,随机输出十个小写字母,但是,要
求
这十个字母不相同 3:
求
Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望
高手
帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
无聊创意12306改变
跟几个朋友聊起数据模式。以及数据改变生活。不知道怎么就说到12306。 记得有一篇文章在说12306很复杂麻烦,比起淘宝的还复杂。...很奇怪的
算法
。 以前车票都是 班次 起点 终点; 能否变革为: 班次 车站 状态
Java
51,397
社区成员
85,846
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章