1

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

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

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

例如:

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 都是可以接受的(没有大量使用外部库,因为我无权安装它们)。

提前致谢。

4

1 回答 1

2

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

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

于 2009-02-06T14:35:37.953 回答