当前位置: 首页 > 面试题库 >

Python子集总和

向苗宣
2023-03-14
问题内容

我正在尝试编写一个函数,该函数不仅将确定集合的子集的总和是否会增加到所需的目标数量,而且还将打印解决方案的子集。

这是我的代码,用于查找是否存在子集:

def subsetsum(array,num):

    if num == 0 or num < 1:
        return False
    elif len(array) == 0:
        return False
    else:
        if array[0] == num:
            return True
        else:
            return subsetsum(array[1:],(num - array[0])) or subsetsum(array[1:],num)

如何修改它以记录子集本身,以便可以打印它?提前致谢!


问题答案:

根据您的解决方案:

def subsetsum(array,num):

    if num == 0 or num < 1:
        return None
    elif len(array) == 0:
        return None
    else:
        if array[0] == num:
            return [array[0]]
        else:
            with_v = subsetsum(array[1:],(num - array[0])) 
            if with_v:
                return [array[0]] + with_v
            else:
                return subsetsum(array[1:],num)


 类似资料:
  • 本文向大家介绍C ++中子集差异的总和,包括了C ++中子集差异的总和的使用技巧和注意事项,需要的朋友参考一下 在这个问题上,我们得到了一个n的集合S。我们的任务是创建一个程序,以查找子集差异之和,即子集的最后一个元素与第一个元素的差异。 公式是 让我们举个例子来了解这个问题, 输入 - 输出- 说明-所有子集是- 解决该问题的简单方法是找到所有子集的last和first之间的差异,然后将它们相加

  • 问题内容: 给定一组整数,如何找到一个总和为给定值的子集…子集问题? 示例:S = {1,2,4,3,2,5}并且n = 7求和为n的可能子集。我试图用Google搜索出很多链接,但不清楚。我们如何在Java中解决这个问题?要使用什么数据结构及其复杂性? 问题答案: 我不会给您任何代码,但会解释它是如何工作的。 从运行循环 对于1中的每个值,其二进制表示中的1表示已选择此值,否则为0。 测试以查看

  • 我一直在学习动态规划,我想通过打印出所有相加为一个数字的子集来进一步研究经典的子集和问题。我该怎么做呢?到目前为止,我知道如何根据是否存在相加的子集来打印true或false 如果可能,我想返回所有子集的数组。

  • 我们在Google Firestore中有一个收藏。 我们是否可以在一条语句中添加一个包含数据的文档和此新文档下的子集合?

  • 在R中,我有一个列表,由12个子列表组成,每个子列表本身由5个子发布者组成,如下所示 列表和子列表 在本例中,我想为每个子列表提取信息“MSD”。 我可以提取每种使用方法的级别“统计信息” 这很有效。它给了我子列表“statistics”中包含的所有值,但是,对于每个列表,我想向下一级,因为我对其他数据(如MSerror、Df等)不感兴趣。。。。。只有MSD 我试过了 还有许多人没有成功。 如果我

  • 我创建了一个新示例,并将代码分为客户端和服务器端。 完整的代码可以在这里找到。 服务器端有3个版本。 服务器无Spring Boot应用程序,使用Spring Integration RSocket InboundGateway 服务器引导重用Spring RSocket autconfiguration,并通过serverrsocketmessagehandler创建ServerRSocketC