查找庞大数据集的子集总数

时间:2009-02-06 14:30:44

标签: algorithm binary-search subset-sum

首先:我不是程序员,从未学过编程/算法。 实际上我必须编程,主要是awk,或ruby,一些bash。

在今天的任务中,我在一个纯文本文件中有一个巨大的数据集(浮点数),一个记录/行,以及该集合中所有数字的总和,但总和是错误的,因为有些数字(可以只有一个)在集合中是负数,但我们在文件中看不到它(如果元素是负数则没有迹象)。

但我必须找到它/他们:所以首先我计算出正确的总和(加上所有数字awk)并不关心他们的迹象。 现在我现在是原始金额(关心标志)和我的新总金额之间的差异。但是我必须找到数据集的所有子集,它们具有与差值/ 2完全相同的总和。

E.g:

DATA:
1,2,3,4,5

ORIG SUM: 
5  

现在我们可以计算1 + 2 + 3 + 4 + 5之间的差异 - ORIG SUM:15-5 = 10。 10/2 = 5,所以我需要找到所有可以加起来为5的子集,即[1,4],[2,3],[5]。

有没有正确的方法呢?我更喜欢awk,ruby,shell脚本,但是python和perl都是可以接受的(没有大量使用外部库,因为我没有权利安装它们。)

提前致谢。

1 个答案:

答案 0 :(得分:2)

您的意思是计算机科学中已知的SUBSET SUM问题?

提示:查看相关问题,关于这个问题有很多问题/答案。