【问题标题】:Calculating if sum of subsets of a given list exists recursively计算给定列表的子集总和是否递归存在
【发布时间】:2015-11-13 11:21:04
【问题描述】:

我需要构建一个接收整数列表(数字)和非负整数(目标)的递归函数。

该函数将查找给定列表的任何可能子集,如果其值相加并等于目标,则返回 True

def subset_sum(numbers, target):
    '''
    numbers - a list of positive integers
    target - a non-negative integer
    returns True if the list 'numbers' has a sub-list with sum 'target',
            False otherwise.
    '''

Side Note: [] is a subset of any given list (set)

例子:

subset_sum([1,2,3,4], 8):

True

subset_sum([1,2,3,4], 11):

False

subset_sum([4,4,4], 05):

True

subset_sum([4,4,4], 11):

False

subset_sum([], 0):

True

任何帮助表示赞赏!

【问题讨论】:

  • 问题是……?
  • 我没有这样做,目前正在寻求帮助。

标签: python-2.7 recursion


【解决方案1】:

这是子集和问题的一个变体(子问题),您可以在此处阅读:

https://en.wikipedia.org/wiki/Subset_sum_problem

概述了一种伪代码算法,可以近似地在多项式时间内解决任何整数(正数或负数)的问题。有趣的是,这已发布在 Stackoverflow 和 python 中!

Fast solution to Subset sum

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2013-11-26
    • 2012-11-18
    相关资源
    最近更新 更多