ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 2014新年元旦第一强帖:实用凑数凑金额高效递归剪枝算法

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-22 12:20 | 显示全部楼层
本帖已被收录到知识树中,索引项:递归
香川群子 发表于 2019-2-21 09:57
你这个,实际上是对n列元素进行多列组合(似乎也称之为多行多列的笛卡尔展开。)

然后各列取值再乘以 ...

香川老师,还是要继续请教一下,如图的求和组合中,X和b是固定的,Xn是有取值范围,该如何修改算法?
算法01.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-22 13:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
修改了一下计算多元一次方程组整数解的代码。

一元方程的组合解-2.zip

23.28 KB, 下载次数: 49

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-22 13:53 | 显示全部楼层
cj9687451 发表于 2019-2-22 12:20
香川老师,还是要继续请教一下,如图的求和组合中,X和b是固定的,Xn是有取值范围,该如何修改算法?

是这个意思吗:
     [X1/(B-X1)+X2/(B-X2)……Xn/(B-Xn)]
X=______________________________
     [ 1/(B-X1)+ 1/(B-X2)……1/(B-Xn)]

其中,X1 -  Xn在各自指定范围内取值,参数B固定为常数,求总和X范围内的整数X解组合。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-22 13:55 | 显示全部楼层
cj9687451 发表于 2019-2-22 12:20
香川老师,还是要继续请教一下,如图的求和组合中,X和b是固定的,Xn是有取值范围,该如何修改算法?

你用实际需要计算的数值上个附件吧。

TA的精华主题

TA的得分主题

发表于 2019-2-22 14:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2019-2-22 13:53
是这个意思吗:
     [X1/(B-X1)+X2/(B-X2)……Xn/(B-Xn)]
X=______________________________

没有错,就是这个意思~~附件来了~~

多元一次方程的组合解.7z

17.84 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-22 16:31 | 显示全部楼层
按计算式计算即可。

多元一次方程的组合解-3.zip

18.9 KB, 下载次数: 60

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-3-26 14:08 | 显示全部楼层
本帖最后由 樱之桦 于 2019-3-26 14:12 编辑

香川老师,知道您在组合求数这方面颇有建树,有个疑问想请教下您。有下表,请问如何求四个数总和为37的所有组合排列,及如何求三个数总和为37的所有组合排列,顺序变了也算不同的组合。 附件0.zip (6.58 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-29 20:27 | 显示全部楼层
樱之桦 发表于 2019-3-26 14:08
香川老师,知道您在组合求数这方面颇有建树,有个疑问想请教下您。有下表,请问如何求四个数总和为37的所有 ...

n        dgH4:
3        +34+2+1
3        +33+3+1
3        +32+4+1
3        +32+3+2
3        +31+5+1
3        +31+4+2
3        +30+6+1
3        +30+5+2
3        +30+4+3
3        +29+7+1
3        +29+6+2
3        +29+5+3
3        +28+8+1
3        +28+7+2
3        +28+6+3
3        +28+5+4
3        +27+9+1
3        +27+8+2
3        +27+7+3
3        +27+6+4
3        +26+10+1
3        +26+9+2
3        +26+8+3
3        +26+7+4
3        +26+6+5
3        +25+11+1
3        +25+10+2
3        +25+9+3
3        +25+8+4
3        +25+7+5
3        +24+12+1
3        +24+11+2
3        +24+10+3
3        +24+9+4
3        +24+8+5
3        +24+7+6
3        +23+13+1
3        +23+12+2
3        +23+11+3
3        +23+10+4
3        +23+9+5
3        +23+8+6
3        +22+14+1
3        +22+13+2
3        +22+12+3
3        +22+11+4
3        +22+10+5
3        +22+9+6
3        +22+8+7
3        +21+15+1
3        +21+14+2
3        +21+13+3
3        +21+12+4
3        +21+11+5
3        +21+10+6
3        +21+9+7
3        +20+16+1
3        +20+15+2
3        +20+14+3
3        +20+13+4
3        +20+12+5
3        +20+11+6
3        +20+10+7
3        +20+9+8
3        +19+17+1
3        +19+16+2
3        +19+15+3
3        +19+14+4
3        +19+13+5
3        +19+12+6
3        +19+11+7
3        +19+10+8
3        +18+17+2
3        +18+16+3
3        +18+15+4
3        +18+14+5
3        +18+13+6
3        +18+12+7
3        +18+11+8
3        +18+10+9
3        +17+16+4
3        +17+15+5
3        +17+14+6
3        +17+13+7
3        +17+12+8
3        +17+11+9
3        +16+15+6
3        +16+14+7
3        +16+13+8
3        +16+12+9
3        +16+11+10
3        +15+14+8
3        +15+13+9
3        +15+12+10
3        +14+13+10
3        +14+12+11
4        +31+3+2+1
4        +30+4+2+1
4        +29+5+2+1
4        +29+4+3+1
4        +28+6+2+1
4        +28+5+3+1
4        +28+4+3+2
4        +27+7+2+1
4        +27+6+3+1
4        +27+5+4+1
4        +27+5+3+2
4        +26+8+2+1
4        +26+7+3+1
4        +26+6+4+1
4        +26+6+3+2
4        +26+5+4+2
4        +25+9+2+1
4        +25+8+3+1
4        +25+7+4+1
4        +25+7+3+2
4        +25+6+5+1
4        +25+6+4+2
4        +25+5+4+3
4        +24+10+2+1
4        +24+9+3+1
4        +24+8+4+1
4        +24+8+3+2
4        +24+7+5+1
4        +24+7+4+2
4        +24+6+5+2
4        +24+6+4+3
4        +23+11+2+1
4        +23+10+3+1
4        +23+9+4+1
4        +23+9+3+2
4        +23+8+5+1
4        +23+8+4+2
4        +23+7+6+1
4        +23+7+5+2
4        +23+7+4+3
4        +23+6+5+3
4        +22+12+2+1
4        +22+11+3+1
4        +22+10+4+1
4        +22+10+3+2
4        +22+9+5+1
4        +22+9+4+2
4        +22+8+6+1
4        +22+8+5+2
4        +22+8+4+3
4        +22+7+6+2
4        +22+7+5+3
4        +22+6+5+4
4        +21+13+2+1
4        +21+12+3+1
4        +21+11+4+1
4        +21+11+3+2
4        +21+10+5+1
4        +21+10+4+2
4        +21+9+6+1
4        +21+9+5+2
4        +21+9+4+3
4        +21+8+7+1
4        +21+8+6+2
4        +21+8+5+3
4        +21+7+6+3
4        +21+7+5+4
4        +20+14+2+1
4        +20+13+3+1
4        +20+12+4+1
4        +20+12+3+2
4        +20+11+5+1
4        +20+11+4+2
4        +20+10+6+1
4        +20+10+5+2
4        +20+10+4+3
4        +20+9+7+1
4        +20+9+6+2
4        +20+9+5+3
4        +20+8+7+2
4        +20+8+6+3
4        +20+8+5+4
4        +20+7+6+4
4        +19+15+2+1
4        +19+14+3+1
4        +19+13+4+1
4        +19+13+3+2
4        +19+12+5+1
4        +19+12+4+2
4        +19+11+6+1
4        +19+11+5+2
4        +19+11+4+3
4        +19+10+7+1
4        +19+10+6+2
4        +19+10+5+3
4        +19+9+8+1
4        +19+9+7+2
4        +19+9+6+3
4        +19+9+5+4
4        +19+8+7+3
4        +19+8+6+4
4        +19+7+6+5
4        +18+16+2+1
4        +18+15+3+1
4        +18+14+4+1
4        +18+14+3+2
4        +18+13+5+1
4        +18+13+4+2
4        +18+12+6+1
4        +18+12+5+2
4        +18+12+4+3
4        +18+11+7+1
4        +18+11+6+2
4        +18+11+5+3
4        +18+10+8+1
4        +18+10+7+2
4        +18+10+6+3
4        +18+10+5+4
4        +18+9+8+2
4        +18+9+7+3
4        +18+9+6+4
4        +18+8+7+4
4        +18+8+6+5
4        +17+16+3+1
4        +17+15+4+1
4        +17+15+3+2
4        +17+14+5+1
4        +17+14+4+2
4        +17+13+6+1
4        +17+13+5+2
4        +17+13+4+3
4        +17+12+7+1
4        +17+12+6+2
4        +17+12+5+3
4        +17+11+8+1
4        +17+11+7+2
4        +17+11+6+3
4        +17+11+5+4
4        +17+10+9+1
4        +17+10+8+2
4        +17+10+7+3
4        +17+10+6+4
4        +17+9+8+3
4        +17+9+7+4
4        +17+9+6+5
4        +17+8+7+5
4        +16+15+5+1
4        +16+15+4+2
4        +16+14+6+1
4        +16+14+5+2
4        +16+14+4+3
4        +16+13+7+1
4        +16+13+6+2
4        +16+13+5+3
4        +16+12+8+1
4        +16+12+7+2
4        +16+12+6+3
4        +16+12+5+4
4        +16+11+9+1
4        +16+11+8+2
4        +16+11+7+3
4        +16+11+6+4
4        +16+10+9+2
4        +16+10+8+3
4        +16+10+7+4
4        +16+10+6+5
4        +16+9+8+4
4        +16+9+7+5
4        +16+8+7+6
4        +15+14+7+1
4        +15+14+6+2
4        +15+14+5+3
4        +15+13+8+1
4        +15+13+7+2
4        +15+13+6+3
4        +15+13+5+4
4        +15+12+9+1
4        +15+12+8+2
4        +15+12+7+3
4        +15+12+6+4
4        +15+11+10+1
4        +15+11+9+2
4        +15+11+8+3
4        +15+11+7+4
4        +15+11+6+5
4        +15+10+9+3
4        +15+10+8+4
4        +15+10+7+5
4        +15+9+8+5
4        +15+9+7+6
4        +14+13+9+1
4        +14+13+8+2
4        +14+13+7+3
4        +14+13+6+4
4        +14+12+10+1
4        +14+12+9+2
4        +14+12+8+3
4        +14+12+7+4
4        +14+12+6+5
4        +14+11+10+2
4        +14+11+9+3
4        +14+11+8+4
4        +14+11+7+5
4        +14+10+9+4
4        +14+10+8+5
4        +14+10+7+6
4        +14+9+8+6
4        +13+12+11+1
4        +13+12+10+2
4        +13+12+9+3
4        +13+12+8+4
4        +13+12+7+5
4        +13+11+10+3
4        +13+11+9+4
4        +13+11+8+5
4        +13+11+7+6
4        +13+10+9+5
4        +13+10+8+6
4        +13+9+8+7
4        +12+11+10+4
4        +12+11+9+5
4        +12+11+8+6
4        +12+10+9+6
4        +12+10+8+7
4        +11+10+9+7

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-29 20:29 | 显示全部楼层
樱之桦 发表于 2019-3-26 14:08
香川老师,知道您在组合求数这方面颇有建树,有个疑问想请教下您。有下表,请问如何求四个数总和为37的所有 ...

用我的凑数程序,目标和值=37,个数范围3-4
组合元素为1-37,
运算一下,秒杀出结果。

TA的精华主题

TA的得分主题

发表于 2019-4-3 00:04 | 显示全部楼层
不好意思,我是个小白。请问提示溢出,点开调试这部分标黄。h = [b2] * 10 ^ d + IIf(d < 0, d, 0)  '【目标和值匹配下限h】请问怎么解决,我想从一千多条数据凑出一个数,数字大小不一,有的是几千万,有的是几分钱。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-8 04:35 , Processed in 0.030343 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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