Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1698|回复: 3

[VBA] 用VBA解欧拉计划题目(105)--特殊的子集和:检验

[复制链接]
发表于 2017-12-30 19:28 | 显示全部楼层 |阅读模式
特殊的子集和:检验
记S(A)是大小为n的集合A中所有元素的和。若任取A的任意两个非空且不相交的子集B和C都满足下列条件,我们称A是一个特殊的和集:
  • S(B) ≠ S(C);也就是说,任意子集的和不相同。
  • 如果B中的元素比C多,则S(B) > S(C)。
例如,{81, 88, 75, 42, 87, 84, 86, 65}不是一个特殊和集,因为65 + 87 + 88 = 75 + 81 + 84,而{157, 150, 164, 119, 79, 159, 161, 139, 158}满足上述规则,且相应的S(A) = 1286。
在4K的文本文件sets.txt中包含了一百组包含7至12个元素的集合(文档中的前两个例子就是上述样例),找出其中所有的特殊和集A1、A2、……、Ak,并求S(A1) + S(A2) + … + S(Ak)的值。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2018-1-1 16:24 | 显示全部楼层
本帖最后由 香川群子 于 2018-1-1 16:32 编辑

只有28个满足条件,总和S=73702

具体如下:
序号,行序号,元素个数,总和
1  18  7  295
2  51  7  291
3  66  7  384
4  69  7  309
5  98  7  298
6  15  8  595
7  21  8  657
8  40  8  1003
9  68  8  695
10  94  8  713
11  1  9  1286
12  36  9  1285
13  43  9  1419
14  64  9  1523
15  78  9  2291
16  80  9  1413
17  83  9  1523
18  6  10  3313
19  24  10  2998
20  33  10  3230
21  45  10  2873
22  62  10  3178
23  91  10  2854
24  31  11  7050
25  44  11  6949
26  54  11  6127
27  88  11  6029
28  71  12  13121
12.848s 73702  28
回复

使用道具 举报

发表于 2018-1-1 16:28 | 显示全部楼层
本帖最后由 香川群子 于 2018-1-1 16:33 编辑

还有错漏。因为过程中的数据没有清零。

但是方法肯定对了。有时间再来检查修改一下。

好了,改好了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2018-1-1 19:08 | 显示全部楼层
结果正确。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 23:09 , Processed in 0.233275 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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