ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论]排列组合之最优算法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-11-13 21:03 | 显示全部楼层
本帖已被收录到知识树中,索引项:其他结构和算法
原帖由 彭希仁 于 2009-11-13 17:40 发表
老伙计2008不是已经改好了吗?

没有 ,没看懂逻辑关系 。试了几下都不行
我既想要字符串数组,又想要数字型(Byte)型数组,即两种同时存在,输出不输出到文本无所谓。可是没找到关键点,懵懵懂懂的,脑子不行了
我觉得关键点应该在初始化这里,可是我没搞明白为什么要这样初始化
目前我搞的情况是:输出到文本的前两个数字之间没有空格且组合错误(只是在字符串加上了Format,不止咋回事),另一种情况,首行又多出了单个数字的单行,同时存在前面的情况。不知道是怎么搞的,还没涉及到数字型数组
还是用自己的吧!就是代码多点的问题,搞起来不费劲

[ 本帖最后由 老伙计2008 于 2009-11-14 00:22 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-14 08:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一个存地址,一个存组合内容.可以按F8慢慢看就知清楚了

TA的精华主题

TA的得分主题

发表于 2009-11-14 10:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 彭希仁 于 2009-11-14 08:36 发表
一个存地址,一个存组合内容.可以按F8慢慢看就知清楚了

谢谢!我仔细研究研究!

TA的精华主题

TA的得分主题

发表于 2009-11-15 16:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
刚刚在我的电脑上做了一个33选8的测试,用循环硬组合算法用时12秒多,彭版算法用时59秒多。
觉得差异太大,看一下生成的txt文件,硬循环组合生成文件的69.8M,在我的电脑上还能够打开(很慢),输出结果正常。彭版算法生成的文件315M,不知道能否打不开,没敢试,不知道为什么会输出这么大的文件。
更正:进行上面的测试时,我从最右面一个单元格(内容28)拖到33,因此造成不够33个数字的33选8,酿成大错!
对由此被误导朋友道歉


[ 本帖最后由 老伙计2008 于 2009-11-23 00:13 编辑 ]

高速排列组合.rar

13.35 KB, 下载次数: 106

TA的精华主题

TA的得分主题

发表于 2009-11-16 09:17 | 显示全部楼层

回复 76楼 老伙计2008 的帖子

尝试了下32选20
运算用了11妙……
出来的结果有200多MB……
尝试打开,预计费时10分钟左右……
恩,感谢两位的帮助~

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-16 09:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 老伙计2008 于 2009-11-15 16:05 发表
刚刚在我的电脑上做了一个33选8的测试,用循环硬组合算法用时12秒多,彭版算法用时59秒多。
觉得差异太大,看一下生成的txt文件,硬循环组合生成文件的69.8M,在我的电脑上还能够打开(很慢),输出结果正常。彭版算 ...

3百多M,还是不要打开了,会死机的

TA的精华主题

TA的得分主题

发表于 2009-11-16 09:31 | 显示全部楼层

回复 76楼 老伙计2008 的帖子

额……原来只是固定选8个的程序……如何才能自由选择选取数?

TA的精华主题

TA的得分主题

发表于 2009-11-16 09:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 79楼 彭希仁 的帖子

彭老师……
我还是把我的问题说的具体些吧……看看您有没有办法。
其实问题是这样的,我手头有一个多个数字的和,我大致知道这多个数字的范围,但是还是有误差。所以我想到了用排列组合把它显示出来的办法,也就是说,彭老师原先那个公式算完后我会加一些步骤(分格,算和,然后和查找那个数字),因为我只知道这个和是多少,也只知道范围,但是不知道由多少个数字组成,所以经常要花比较多的时间,如果没有公式的话,是根本不可能了。彭老师那个公式解决了不少问题,但是由于我这还是有不少情况会超出EXCEL的显示的范围,所以还是比较头痛……

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-11-16 10:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你是求N个数等于x的组合吗

TA的精华主题

TA的得分主题

发表于 2009-11-16 10:57 | 显示全部楼层

回复 82楼 彭希仁 的帖子

是的。知道范围,不知道N,知道X
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 11:45 , Processed in 0.044190 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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