ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 蒋昊

[求助] 1到8个数字不重复排列

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-23 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
晒晒我的臭公式(三公式,一个色块一个),抛砖引玉,期待高手完善
不断按F9键切换,大多数是出错误信息的,但也有完全符合条件的(对的可以复制/选择性粘贴在一旁)

EH(WJG)c.rar (3.27 KB, 下载次数: 7)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-23 12:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjguo44 发表于 2014-9-23 12:31
我用公式做了个,可以得到各种完全符合条件的组合(1~8 行内和列内没有相等,下行头等于上行尾),如附图1, ...

谢谢大哥,好像还是有很多相邻两个数字重复出现的情况,相邻两个数字的排列中只允许出现一次。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:01 | 显示全部楼层
蒋昊 发表于 2014-9-23 12:52
谢谢大哥,好像还是有很多相邻两个数字重复出现的情况,相邻两个数字的排列中只允许出现一次。

相邻两个数字的排列中只允许出现一次——有一行中相邻出现“5,6”,其他行就不能再出现{5,6}相邻?{6,5}也不行?上下行也不能有相邻的{5;6}或{6;5}?
如是,老朽无能,告退。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-23 13:08 | 显示全部楼层
wangjguo44 发表于 2014-9-23 13:01
相邻两个数字的排列中只允许出现一次——有一行中相邻出现“5,6”,其他行就不能再出现{5,6}相邻?{6,5}也 ...

别生气嘛大哥,相邻的“5,6”在整个排列中只能出现一次,“6,5”也一样。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:15 | 显示全部楼层
wangjguo44 发表于 2014-9-23 13:01
相邻两个数字的排列中只允许出现一次——有一行中相邻出现“5,6”,其他行就不能再出现{5,6}相邻?{6,5}也 ...

如果规则确实如此,则本题无解!

规则见14楼,排除第4条。

再贴一遍:

我帮你整理一下:

1. 每一行由 1-8 的不重复数字的不同排列组成。
  (注:一共会有Fact(8)=40320个不同组合)

2. 从第2行起,首位和上一行末位相同

3. 同一行内,相邻两个数字的排列只允许出现一次。
   (注:一共会有Permut(8,2)=56个不同的排列,每行出现7个,8行正好56个)

4. 同一列内数字不重复出现。 【我认为这个条件加上以后、结果就成为不可能了。】

…………

楼主补充,还有其它要求没有?!


点评

使问题变复杂的是第3条规则……  发表于 2014-9-23 18:55

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:15 | 显示全部楼层
LZ的题目有=COMBIN(FACT(8),8)=1.73117930575797E+32的组合数

1到8所有排列数有40320组,
要从这么多组中取出8组符合楼主条件的,估计计算机也要几年时间算完吧。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zxh361 发表于 2014-9-23 13:15
LZ的题目有=COMBIN(FACT(8),8)=1.73117930575797E+32的组合数

1到8所有排列数有40320组,

现在不是要算多久的问题,而是能不能算出符合条件的解。

我的结论是:本题无解。

目前能够填写出来的是4组(4行)
1 2 3 4 5 6 7 8
8 3 1 4 2 5 7 6
6 3 2 1 5 4 8 7
7 3 5 1 6 2 8 4

或 2开头
2 3 1 4 5 6 7 8
8 2 1 3 4 6 5 7
7 2 4 1 5 3 8 6
6 1 2 7 4 8 3 5

或 3开头
3 2 1 4 5 6 7 8
8 2 3 1 5 4 7 6
6 2 4 1 3 5 8 7
7 1 2 6 3 4 8 5

或 4开头
4 2 1 3 5 6 7 8
8 2 3 1 4 5 7 6
6 2 4 1 5 3 8 7
7 1 2 6 3 4 8 5

或 5开头
5 2 1 3 4 6 7 8
8 2 3 1 4 5 7 6
6 2 4 1 5 3 8 7
7 1 2 6 4 8 3 5

或 6开头
6 2 1 3 4 5 7 8
8 2 3 1 4 6 7 5
5 2 4 1 6 3 8 7
7 1 2 5 4 8 3 6

7开头只能有3组
7 2 1 3 4 5 6 8
8 2 3 1 4 6 5 7
7 2 4 1 5 3 8 6

8开头也只有3组
8 2 1 3 4 5 6 7
7 2 3 1 4 6 5 8
8 2 4 1 5 3 7 6

以上。

凑满完整8组(8行)是不可能的。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:41 | 显示全部楼层
香川群子 发表于 2014-9-23 13:32
现在不是要算多久的问题,而是能不能算出符合条件的解。

我的结论是:本题无解。

香川老师,您给出的这几组数字,第二列都是重复的,不符合楼主要求的吧。
楼主要求是,
1.每一行每一列不能有重复。
2.每一行相邻的两个数不能在其它行重复出现。
3.每一行的第一个数字就是上一行最后一个数字,
不知道能不能有解,得所这么多组合全部历遍并判断是否符合要求。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:57 | 显示全部楼层
zxh361 发表于 2014-9-23 13:41
香川老师,您给出的这几组数字,第二列都是重复的,不符合楼主要求的吧。
楼主要求是,
1.每一行每一列 ...

每一列不能有重复……这个条件已经不需要了。楼主说过的。

TA的精华主题

TA的得分主题

发表于 2014-9-23 13:59 | 显示全部楼层
zxh361 发表于 2014-9-23 13:41
香川老师,您给出的这几组数字,第二列都是重复的,不符合楼主要求的吧。
楼主要求是,
1.每一行每一列 ...

【不知道能不能有解,得这么多组合全部历遍并判断是否符合要求。】


肯定无解。

不需要遍历全部组合。这个是树叉分支的遍历检查。
任何位置只要有一支不符合,则后面所有的组合都不需要检查了。

所以很容易得到结论:无解。



您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-10-7 06:40 , Processed in 0.048721 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表