Foxtable(狐表)用户栏目专家坐堂 → 排班(遍历)方法思路求教


  共有6847人关注过本帖树形打印复制链接

主题:排班(遍历)方法思路求教

帅哥哟,离线,有人找我吗?
一笑
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
排班(遍历)方法思路求教  发帖心情 Post By:2018/2/22 21:34:00 [显示全部帖子]

想做了一个排班系统,如下图所示:

图片点击可在新窗口打开查看此主题相关图片如下:排班思路.png
图片点击可在新窗口打开查看

从候选人中选取1名作为每一组的司机,每组司机不能相同,比如第1组选定张三后,其他组都不能选取。想用遍历的方法选出5组司机,并计算总共有多少种可能性,比如:1. 张三2李四3王二4刘备5孙子;1. 李四2张三3王二4刘备5孙子;请教一下代码的思路,菜鸟,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/23 11:15:00 [显示全部帖子]

谢谢,代码看懂了。层数不固定,能不能请教一下递归代码,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/24 11:00:00 [显示全部帖子]

能给每个字符串前加个序号(多少种可能性)吗?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/24 18:44:00 [显示全部帖子]

代码运行正常,但计算量太大,层数稍多,系统就崩溃。想在找到一种可能性时就退出循环,如对结果不满意,再次启动,接着寻找下一种结果,求代码,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/25 12:08:00 [显示全部帖子]

代码可运行,但有以下问题:
1. 和设计思路不一样,需要每找到一种可能性就停止,点击“继续”,按钮再寻找下一种可能性。
请指教,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排班测试.zip


[此贴子已经被作者于2018/2/25 22:46:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/26 8:59:00 [显示全部帖子]

最初的想法是列举出各种可能,但电脑基本都会崩溃。所以现在是想找到一种可能时就停止,如不满意,然后点击某个按钮后再接着再找下一种可能,找到后又停止。如此重复,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/26 13:24:00 [显示全部帖子]

一、想做成这样:不需要暂停按钮,有“排班”和“继续”按钮就行,点击“排班”后,找到一个可能后自动停止,“可能性”单元格显示显示:
1马岱,张昭,太史慈,司马懿,刘封;
接着点击“继续”,系统找到下一种可能后自动停止,“可能性”单元格显示:
1马岱,张昭,太史慈,司马懿,刘封;
2马岱,张昭,太史慈,司马懿,严颜;
如再点击“继续”,显示前3种,以此类推。

二、测试目前项目发现,点击“暂停”后,可以停止,但想退出窗口,则需等到计算完所有可能后才能退出。

谢谢指教。

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/2/26 21:39:00 [显示全部帖子]

请问第一种功能(找到一个可能后自动停止),如何实现,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/3/12 15:57:00 [显示全部帖子]

已实现找到一个可能后自动停止,但无法继续找下一种可能性。如再次点击,找到的还是第1中可能,如点击“继续”按钮(vars("暂停") = False),不起作用,求解,谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
一笑
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:808 积分:6207 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2018/3/17 17:26:00 [显示全部帖子]

谢谢帮助,以上代码运行正常。但有个新需求,现在是按总层数递归整体排班,但层数太多时运算会死机(比如一个月的班)。想分日期分步骤排班,比如120层,共3天,每天40层,先把第1天40层排完后再排第2、3天(因为每天人员不能重复,但在其他日期可以重复,相对日期独立),直到排完,请教如何修改代码,谢谢!
[此贴子已经被作者于2018/3/17 17:32:52编辑过]

 回到顶部
总数 12 1 2 下一页