代码之家  ›  专栏  ›  技术社区  ›  Zsolt Botykai

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

  •  1
  • Zsolt Botykai  · 技术社区  · 16 年前

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

    提前感谢。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Johannes Weiss    16 年前

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

    提示:在相关问题中,有很多关于这个问题的问题/答案。