【发布时间】:2013-04-12 21:42:02
【问题描述】:
我在 .txt 文件中有大量 (S) 长无符号整数。如何找到具有以下属性的 S 的最大子集 (Pmax):
P{X1,X2,X3,...,Xn) | X1>=(Xn/4)
更多细节:
- 当我说最大子集时,我指的是元素数量最多的子集 (n->max)。
- 由于内存有限,我无法将 .txt 加载到数组中。
- 我的系统内存是 200MB
- txt 文件有 10^6 个整数。每个整数都可以是长无符号 32 位。
- 我需要找到 S 的最大子集,条件是:
X1 = (XN/4)
例如,如果 txt 文件具有以下内容: 15,14,13,4,2,2,3,10,1,2,2 那么这些是可能的子集:
P1(4,10,13,14,15)
P2(3,4,10)
P3(1,2,2,2,2,3,4)
所以 Pmax(1,2,2,2,2,3,4) 因为它有更多的元素。
事实上,我不想确切地找到哪个是 Pmax。我只想找到子集 Pmax 的元素数。所以这里是 7。
算法应该很快。
我不找人来做我的工作。我只需要一个相应的问题,这样我就可以寻找有效的解决方案。提前谢谢!!!
【问题讨论】:
-
你的内存是200MB?还是你的文件?另外,
P是什么?|是指“这样”吗? -
附带说明,在这个网站上,我们试图帮助您,而不是做您的工作。你至少需要表现出一些努力。你已经尝试过什么?您通过 google 搜索发现了什么,为什么您发现的内容不足以满足您的目的?
-
我可能会误解你写条件的方式,但你不是要写子集中的所有数字都大于 X1 吗?您现在编写它的方式最大子集几乎是定义的整个文件。
-
所以在数组
[1,3,12,16,20,99]中,答案是[12,1,2]?因为 12>(16/4) 和 12>(20/4),但是 12 -
首先,我从未要求任何人做我的工作。我只需要一个相应的问题,这样我就可以找到我的解决方案。
标签: algorithm set subset max-size