首先:我不是程序员,从未学过编程/算法。实际上我必须编程,主要是在 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 都是可以接受的(没有大量使用外部库,因为我无权安装它们)。
提前致谢。