ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: kuoma

[求助] 请教组合问题该怎么列举所有解?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-26 21:19 | 显示全部楼层
micch 发表于 2018-12-26 10:27
这么算结果有多少种??

比如:1+2+2+2+2+2+2+2+2=17

是的這樣子算九種答案,需要全部展開列出來。

TA的精华主题

TA的得分主题

发表于 2018-12-26 21:49 | 显示全部楼层
kuoma 发表于 2018-12-26 21:19
是的這樣子算九種答案,需要全部展開列出來。

嗯,理解了,但是循环实在是数据量太大了,1和8个2总共才9种组合,但是9个数字排列组合要36万多种??循环一遍太费时间了,不会更简单的方法了,递归还没学过呢

TA的精华主题

TA的得分主题

发表于 2018-12-28 21:51 | 显示全部楼层
本帖最后由 Wslhwps 于 2018-12-29 13:49 编辑

列出所有解不容易,抛砖等高手。

数字组合.rar

10.54 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2018-12-28 22:51 | 显示全部楼层
kuoma 发表于 2018-12-26 21:19
是的這樣子算九種答案,需要全部展開列出來。
  1. Sub aa()
  2. arr = Array(0, 2, 4, 8)
  3. For i1 = 0 To 3
  4. For i2 = 0 To 3
  5. For i3 = 0 To 3
  6. For i4 = 0 To 3
  7. For i5 = 0 To 3
  8. For i6 = 0 To 3
  9. For i7 = 0 To 3
  10. For i8 = 0 To 3
  11.     If arr(i1) + arr(i2) + arr(i3) + arr(i4) + arr(i5) + arr(i6) + arr(i7) + arr(i8) = 16 Then
  12.         m = m + 1
  13.         s = arr(i1) & arr(i2) & arr(i3) & arr(i4) & arr(i5) & arr(i6) & arr(i7) & arr(i8)
  14.         s = Replace(s, 0, "")
  15.         Range("a2").Offset(m, 0) = s
  16.     End If
  17. Next i8, i7, i6, i5, i4, i3, i2, i1

  18. Range("a2") = m

  19. Selection.AutoFilter
  20. ActiveSheet.Range("$A$2:$A$2425").RemoveDuplicates Columns:=1, Header:=xlNo

  21. End Sub
复制代码
65536
2423
340
88
3
448
4
484
4
844
4
2248
5
2284
5
2428
5
2482
5
2824
5
2842
5
4228
5
4282
5
4444
5
4822
5
8224
5
8242
5
8422
5
22228
6
22282
6
22444
6
22822
6
24244
6
24424
6
24442
6
28222
6
42244
6
42424
6
42442
6
44224
6
44242
6
44422
6
82222
6
222244
7
222424
7
222442
7
224224
7
224242
7
224422
7
242224
7
242242
7
242422
7
244222
7
422224
7
422242
7
422422
7
424222
7
442222
7
2222224
8
2222242
8
2222422
8
2224222
8
2242222
8
2422222
8
4222222
8
22222222
9

TA的精华主题

TA的得分主题

发表于 2018-12-29 09:36 | 显示全部楼层
  1. Dim w, s&
  2. Sub dsmch()
  3. w = Array(1, 2, 4, 8)
  4. [a:a] = ""
  5. s = 0
  6. dg 0, "", s
  7. End Sub
  8. Sub dg(h, p, s)
  9. If h = 17 Then
  10.     s = s + 1
  11.     Cells(s, 1) = Mid(p, 2)
  12. ElseIf h < 17 Then
  13.     For i = 0 To UBound(w)
  14.         If InStr(p, 1) = 0 Then dg h + w(i), p & "+" & w(i), s
  15.     Next
  16. End If
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-12-29 14:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 yjh_27 于 2018-12-29 14:25 编辑

1,2,4,8
要求和为17,1只能用一次。
则转化为求2,4,8和为16。这是不限次,可放回的排列。按2取8次计,就是0,2,4,8取8次的放回式排列,共65536种。0的引入是为了解决取数次不同。如2次取8时,6次取0,还是8次。排列后清除0即可。
其中和为16的有2423种。去重复后55种。
补入1,1的位置不同各有 字长加1  种排列。
结果共有340种。

TA的精华主题

TA的得分主题

发表于 2018-12-29 15:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yjh_27 发表于 2018-12-29 14:19
1,2,4,8
要求和为17,1只能用一次。
则转化为求2,4,8和为16。这是不限次,可放回的排列。按2取8次计, ...

分析的好。

17去掉1个1(必须的,因为其余的都是偶数了)是=16
所以,2,4,8求和=16的多元一次方程系数解,有9类:
16 = 2*8
16 = 1*8+2*4
16 = 1*8+1*4+2*2
16 = 1*8+4*2
16 = 4*4
16 = 3*4+2*2
16 = 2*4+4*2
16 = 1*4+6*2
16 = 8*2

它们的单独数字的排列组合,一共有340种结果。
n1
n2
n3
n4
n5
n6
n7
n8
n9
总和
组合1
组合2
组合3
排列结果
8
8
1
17
3
3
8
4
4
1
17
4
3
12
8
4
2
2
1
17
5
4
3
60
8
2
2
2
2
1
17
6
5
30
4
4
4
4
1
17
5
5
4
4
4
2
2
1
17
6
10
60
4
4
2
2
2
2
1
17
7
15
105
4
2
2
2
2
2
2
1
17
8
7
56
2
2
2
2
2
2
2
2
1
17
9
9

TA的精华主题

TA的得分主题

发表于 2018-12-29 15:37 | 显示全部楼层
直接组合计算也可以:
计算式
1
2
4
8
c1
c2
c3
排列
16 = 2*8
1
2
3
1
1
3
16 = 1*8+2*4
1
2
1
4
1
3
12
16 =  1*8+1*4+2*2
1
2
1
1
5
6
2
60
16 = 1*8+4*2
1
4
1
6
5
1
30
16 = 4*4
1
4
5
1
1
5
16 = 3*4+2*2
1
2
3
6
10
1
60
16 = 2*4+4*2
1
4
2
7
15
1
105
16 = 1*4+6*2
1
6
1
8
7
1
56
16 = 8*2
1
8
9
1
1
9
340


TA的精华主题

TA的得分主题

发表于 2019-1-18 10:34 | 显示全部楼层
对于得到的组合,进行去重复全排列递归计算,代码稍复杂。

相同元素的去重复组合及排列展开.zip

157.52 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2019-1-21 16:10 | 显示全部楼层
s = 3        n1        n2        n3                                               
188        1        8        8                                               
818        8        1        8                                               
881        8        8        1                                               
s = 12        n1        n2        n3        n4                                       
1844        1        8        4        4                                       
1484        1        4        8        4                                       
1448        1        4        4        8                                       
8144        8        1        4        4                                       
4184        4        1        8        4                                       
4148        4        1        4        8                                       
8414        8        4        1        4                                       
4814        4        8        1        4                                       
4418        4        4        1        8                                       
8441        8        4        4        1                                       
4841        4        8        4        1                                       
4481        4        4        8        1                                       
s = 60        n1        n2        n3        n4        n5                               
18422        1        8        4        2        2                               
18242        1        8        2        4        2                               
18224        1        8        2        2        4                               
14822        1        4        8        2        2                               
12842        1        2        8        4        2                               
12824        1        2        8        2        4                               
14282        1        4        2        8        2                               
12482        1        2        4        8        2                               
12284        1        2        2        8        4                               
14228        1        4        2        2        8                               
12428        1        2        4        2        8                               
12248        1        2        2        4        8                               
81422        8        1        4        2        2                               
81242        8        1        2        4        2                               
81224        8        1        2        2        4                               
41822        4        1        8        2        2                               
21842        2        1        8        4        2                               
21824        2        1        8        2        4                               
41282        4        1        2        8        2                               
21482        2        1        4        8        2                               
21284        2        1        2        8        4                               
41228        4        1        2        2        8                               
21428        2        1        4        2        8                               
21248        2        1        2        4        8                               
84122        8        4        1        2        2                               
82142        8        2        1        4        2                               
82124        8        2        1        2        4                               
48122        4        8        1        2        2                               
28142        2        8        1        4        2                               
28124        2        8        1        2        4                               
42182        4        2        1        8        2                               
24182        2        4        1        8        2                               
22184        2        2        1        8        4                               
42128        4        2        1        2        8                               
24128        2        4        1        2        8                               
22148        2        2        1        4        8                               
84212        8        4        2        1        2                               
82412        8        2        4        1        2                               
82214        8        2        2        1        4                               
48212        4        8        2        1        2                               
28412        2        8        4        1        2                               
28214        2        8        2        1        4                               
42812        4        2        8        1        2                               
24812        2        4        8        1        2                               
22814        2        2        8        1        4                               
42218        4        2        2        1        8                               
24218        2        4        2        1        8                               
22418        2        2        4        1        8                               
84221        8        4        2        2        1                               
82421        8        2        4        2        1                               
82241        8        2        2        4        1                               
48221        4        8        2        2        1                               
28421        2        8        4        2        1                               
28241        2        8        2        4        1                               
42821        4        2        8        2        1                               
24821        2        4        8        2        1                               
22841        2        2        8        4        1                               
42281        4        2        2        8        1                               
24281        2        4        2        8        1                               
22481        2        2        4        8        1                               
s = 30        n1        n2        n3        n4        n5        n6                       
182222        1        8        2        2        2        2                       
128222        1        2        8        2        2        2                       
122822        1        2        2        8        2        2                       
122282        1        2        2        2        8        2                       
122228        1        2        2        2        2        8                       
812222        8        1        2        2        2        2                       
218222        2        1        8        2        2        2                       
212822        2        1        2        8        2        2                       
212282        2        1        2        2        8        2                       
212228        2        1        2        2        2        8                       
821222        8        2        1        2        2        2                       
281222        2        8        1        2        2        2                       
221822        2        2        1        8        2        2                       
221282        2        2        1        2        8        2                       
221228        2        2        1        2        2        8                       
822122        8        2        2        1        2        2                       
282122        2        8        2        1        2        2                       
228122        2        2        8        1        2        2                       
222182        2        2        2        1        8        2                       
222128        2        2        2        1        2        8                       
822212        8        2        2        2        1        2                       
282212        2        8        2        2        1        2                       
228212        2        2        8        2        1        2                       
222812        2        2        2        8        1        2                       
222218        2        2        2        2        1        8                       
822221        8        2        2        2        2        1                       
282221        2        8        2        2        2        1                       
228221        2        2        8        2        2        1                       
222821        2        2        2        8        2        1                       
222281        2        2        2        2        8        1                       
s = 5        n1        n2        n3        n4        n5                               
14444        1        4        4        4        4                               
41444        4        1        4        4        4                               
44144        4        4        1        4        4                               
44414        4        4        4        1        4                               
44441        4        4        4        4        1                               
s = 60        n1        n2        n3        n4        n5        n6                       
144422        1        4        4        4        2        2                       
144242        1        4        4        2        4        2                       
144224        1        4        4        2        2        4                       
142442        1        4        2        4        4        2                       
142424        1        4        2        4        2        4                       
142244        1        4        2        2        4        4                       
124442        1        2        4        4        4        2                       
124424        1        2        4        4        2        4                       
124244        1        2        4        2        4        4                       
122444        1        2        2        4        4        4                       
414422        4        1        4        4        2        2                       
414242        4        1        4        2        4        2                       
414224        4        1        4        2        2        4                       
412442        4        1        2        4        4        2                       
412424        4        1        2        4        2        4                       
412244        4        1        2        2        4        4                       
214442        2        1        4        4        4        2                       
214424        2        1        4        4        2        4                       
214244        2        1        4        2        4        4                       
212444        2        1        2        4        4        4                       
441422        4        4        1        4        2        2                       
441242        4        4        1        2        4        2                       
441224        4        4        1        2        2        4                       
421442        4        2        1        4        4        2                       
421424        4        2        1        4        2        4                       
421244        4        2        1        2        4        4                       
241442        2        4        1        4        4        2                       
241424        2        4        1        4        2        4                       
241244        2        4        1        2        4        4                       
221444        2        2        1        4        4        4                       
444122        4        4        4        1        2        2                       
442142        4        4        2        1        4        2                       
442124        4        4        2        1        2        4                       
424142        4        2        4        1        4        2                       
424124        4        2        4        1        2        4                       
422144        4        2        2        1        4        4                       
244142        2        4        4        1        4        2                       
244124        2        4        4        1        2        4                       
242144        2        4        2        1        4        4                       
224144        2        2        4        1        4        4                       
444212        4        4        4        2        1        2                       
442412        4        4        2        4        1        2                       
442214        4        4        2        2        1        4                       
424412        4        2        4        4        1        2                       
424214        4        2        4        2        1        4                       
422414        4        2        2        4        1        4                       
244412        2        4        4        4        1        2                       
244214        2        4        4        2        1        4                       
242414        2        4        2        4        1        4                       
224414        2        2        4        4        1        4                       
444221        4        4        4        2        2        1                       
442421        4        4        2        4        2        1                       
442241        4        4        2        2        4        1                       
424421        4        2        4        4        2        1                       
424241        4        2        4        2        4        1                       
422441        4        2        2        4        4        1                       
244421        2        4        4        4        2        1                       
244241        2        4        4        2        4        1                       
242441        2        4        2        4        4        1                       
224441        2        2        4        4        4        1                       
s = 105        n1        n2        n3        n4        n5        n6        n7               
1442222        1        4        4        2        2        2        2               
1424222        1        4        2        4        2        2        2               
1422422        1        4        2        2        4        2        2               
1422242        1        4        2        2        2        4        2               
1422224        1        4        2        2        2        2        4               
1244222        1        2        4        4        2        2        2               
1242422        1        2        4        2        4        2        2               
1242242        1        2        4        2        2        4        2               
1242224        1        2        4        2        2        2        4               
1224422        1        2        2        4        4        2        2               
1224242        1        2        2        4        2        4        2               
1224224        1        2        2        4        2        2        4               
1222442        1        2        2        2        4        4        2               
1222424        1        2        2        2        4        2        4               
1222244        1        2        2        2        2        4        4               
4142222        4        1        4        2        2        2        2               
4124222        4        1        2        4        2        2        2               
4122422        4        1        2        2        4        2        2               
4122242        4        1        2        2        2        4        2               
4122224        4        1        2        2        2        2        4               
2144222        2        1        4        4        2        2        2               
2142422        2        1        4        2        4        2        2               
2142242        2        1        4        2        2        4        2               
2142224        2        1        4        2        2        2        4               
2124422        2        1        2        4        4        2        2               
2124242        2        1        2        4        2        4        2               
2124224        2        1        2        4        2        2        4               
2122442        2        1        2        2        4        4        2               
2122424        2        1        2        2        4        2        4               
2122244        2        1        2        2        2        4        4               
4412222        4        4        1        2        2        2        2               
4214222        4        2        1        4        2        2        2               
4212422        4        2        1        2        4        2        2               
4212242        4        2        1        2        2        4        2               
4212224        4        2        1        2        2        2        4               
2414222        2        4        1        4        2        2        2               
2412422        2        4        1        2        4        2        2               
2412242        2        4        1        2        2        4        2               
2412224        2        4        1        2        2        2        4               
2214422        2        2        1        4        4        2        2               
2214242        2        2        1        4        2        4        2               
2214224        2        2        1        4        2        2        4               
2212442        2        2        1        2        4        4        2               
2212424        2        2        1        2        4        2        4               
2212244        2        2        1        2        2        4        4               
4421222        4        4        2        1        2        2        2               
4241222        4        2        4        1        2        2        2               
4221422        4        2        2        1        4        2        2               
4221242        4        2        2        1        2        4        2               
4221224        4        2        2        1        2        2        4               
2441222        2        4        4        1        2        2        2               
2421422        2        4        2        1        4        2        2               
2421242        2        4        2        1        2        4        2               
2421224        2        4        2        1        2        2        4               
2241422        2        2        4        1        4        2        2               
2241242        2        2        4        1        2        4        2               
2241224        2        2        4        1        2        2        4               
2221442        2        2        2        1        4        4        2               
2221424        2        2        2        1        4        2        4               
2221244        2        2        2        1        2        4        4               
4422122        4        4        2        2        1        2        2               
4242122        4        2        4        2        1        2        2               
4224122        4        2        2        4        1        2        2               
4222142        4        2        2        2        1        4        2               
4222124        4        2        2        2        1        2        4               
2442122        2        4        4        2        1        2        2               
2424122        2        4        2        4        1        2        2               
2422142        2        4        2        2        1        4        2               
2422124        2        4        2        2        1        2        4               
2244122        2        2        4        4        1        2        2               
2242142        2        2        4        2        1        4        2               
2242124        2        2        4        2        1        2        4               
2224142        2        2        2        4        1        4        2               
2224124        2        2        2        4        1        2        4               
2222144        2        2        2        2        1        4        4               
4422212        4        4        2        2        2        1        2               
4242212        4        2        4        2        2        1        2               
4224212        4        2        2        4        2        1        2               
4222412        4        2        2        2        4        1        2               
4222214        4        2        2        2        2        1        4               
2442212        2        4        4        2        2        1        2               
2424212        2        4        2        4        2        1        2               
2422412        2        4        2        2        4        1        2               
2422214        2        4        2        2        2        1        4               
2244212        2        2        4        4        2        1        2               
2242412        2        2        4        2        4        1        2               
2242214        2        2        4        2        2        1        4               
2224412        2        2        2        4        4        1        2               
2224214        2        2        2        4        2        1        4               
2222414        2        2        2        2        4        1        4               
4422221        4        4        2        2        2        2        1               
4242221        4        2        4        2        2        2        1               
4224221        4        2        2        4        2        2        1               
4222421        4        2        2        2        4        2        1               
4222241        4        2        2        2        2        4        1               
2442221        2        4        4        2        2        2        1               
2424221        2        4        2        4        2        2        1               
2422421        2        4        2        2        4        2        1               
2422241        2        4        2        2        2        4        1               
2244221        2        2        4        4        2        2        1               
2242421        2        2        4        2        4        2        1               
2242241        2        2        4        2        2        4        1               
2224421        2        2        2        4        4        2        1               
2224241        2        2        2        4        2        4        1               
2222441        2        2        2        2        4        4        1               
s = 56        n1        n2        n3        n4        n5        n6        n7        n8       
14222222        1        4        2        2        2        2        2        2       
12422222        1        2        4        2        2        2        2        2       
12242222        1        2        2        4        2        2        2        2       
12224222        1        2        2        2        4        2        2        2       
12222422        1        2        2        2        2        4        2        2       
12222242        1        2        2        2        2        2        4        2       
12222224        1        2        2        2        2        2        2        4       
41222222        4        1        2        2        2        2        2        2       
21422222        2        1        4        2        2        2        2        2       
21242222        2        1        2        4        2        2        2        2       
21224222        2        1        2        2        4        2        2        2       
21222422        2        1        2        2        2        4        2        2       
21222242        2        1        2        2        2        2        4        2       
21222224        2        1        2        2        2        2        2        4       
42122222        4        2        1        2        2        2        2        2       
24122222        2        4        1        2        2        2        2        2       
22142222        2        2        1        4        2        2        2        2       
22124222        2        2        1        2        4        2        2        2       
22122422        2        2        1        2        2        4        2        2       
22122242        2        2        1        2        2        2        4        2       
22122224        2        2        1        2        2        2        2        4       
42212222        4        2        2        1        2        2        2        2       
24212222        2        4        2        1        2        2        2        2       
22412222        2        2        4        1        2        2        2        2       
22214222        2        2        2        1        4        2        2        2       
22212422        2        2        2        1        2        4        2        2       
22212242        2        2        2        1        2        2        4        2       
22212224        2        2        2        1        2        2        2        4       
42221222        4        2        2        2        1        2        2        2       
24221222        2        4        2        2        1        2        2        2       
22421222        2        2        4        2        1        2        2        2       
22241222        2        2        2        4        1        2        2        2       
22221422        2        2        2        2        1        4        2        2       
22221242        2        2        2        2        1        2        4        2       
22221224        2        2        2        2        1        2        2        4       
42222122        4        2        2        2        2        1        2        2       
24222122        2        4        2        2        2        1        2        2       
22422122        2        2        4        2        2        1        2        2       
22242122        2        2        2        4        2        1        2        2       
22224122        2        2        2        2        4        1        2        2       
22222142        2        2        2        2        2        1        4        2       
22222124        2        2        2        2        2        1        2        4       
42222212        4        2        2        2        2        2        1        2       
24222212        2        4        2        2        2        2        1        2       
22422212        2        2        4        2        2        2        1        2       
22242212        2        2        2        4        2        2        1        2       
22224212        2        2        2        2        4        2        1        2       
22222412        2        2        2        2        2        4        1        2       
22222214        2        2        2        2        2        2        1        4       
42222221        4        2        2        2        2        2        2        1       
24222221        2        4        2        2        2        2        2        1       
22422221        2        2        4        2        2        2        2        1       
22242221        2        2        2        4        2        2        2        1       
22224221        2        2        2        2        4        2        2        1       
22222421        2        2        2        2        2        4        2        1       
22222241        2        2        2        2        2        2        4        1       
s = 9        n1        n2        n3        n4        n5        n6        n7        n8        n9
122222222        1        2        2        2        2        2        2        2        2
212222222        2        1        2        2        2        2        2        2        2
221222222        2        2        1        2        2        2        2        2        2
222122222        2        2        2        1        2        2        2        2        2
222212222        2        2        2        2        1        2        2        2        2
222221222        2        2        2        2        2        1        2        2        2
222222122        2        2        2        2        2        2        1        2        2
222222212        2        2        2        2        2        2        2        1        2
222222221        2        2        2        2        2        2        2        2        1
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 23:52 , Processed in 0.046169 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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