subset-sum

    3热度

    1回答

    我想解决一个动态规划问题,部分问题涉及到查找 一组'p'数字的排列数将总结为数字'n'。 p数字组中的每个数字应该在0到n之间(包括0和n)。 例如如果n = 4和p = 3,我有以下12个排列 {4,0,0},{0,4,0},{0,0,4} {2,2,0},{2,0,2},{0,2,2} {1,3,0},{1,0,3},{0,1,3} {1,1,2},{1,2,1},{2,1,1} 我

    1热度

    1回答

    Cross-posted in MathExchange to elicit more responses。 ============================================== ================================== 我在写我原来的问题在StackOverflow上,当我意识到它被问到before。 原来我有什么被称为一个子集和问题,让我去w

    4热度

    3回答

    我刚刚在大学开始学习Backtracking算法。不知何故,我设法为Subset-Sum问题制作程序。工作正常,但后来我发现我的程序并没有给出所有可能的组合。 例如:目标总数可能有一百个组合,但我的程序只给出30. 这里是代码。如果有人能指出我的错误是什么,这将是一个很大的帮助。 int tot=0;//tot is the total sum of all the numbers in the

    0热度

    1回答

    跨越这个问题刚来到鉴于总和是9和阵列是{0,1,2,7,13} => 0/P为1对(2和7) 好像这可以在O(n)来实现(建立一个哈希表或字典,迭代给定阵列的每个元素,并从给定的总和中减去,检查是否结果数字在阵列中) 显然,遍历数组的每个元素需要O(n)时间。 My question is what is the time complexity and the space complexity f

    4热度

    3回答

    比方说,我们已经得到了一套 {a_1, a_2, a_3, ..., a_n} 的目标是发现我们以下列方式产生了一加:我们发现,其长度为3的所有子集,然后乘以每个子集的元素(子集{b_1, b_2, b_3}的结果将是b_1*b_2*b_3)。最后,我们总结所有这些产品。 我正在寻找最短的时间执行算法。 例 SET: {3, 2, 1, 2} Let S be our sum. S =

    0热度

    2回答

    所以这里是我到目前为止的代码。它的工作原理和返回真如果总和存在,但我似乎不能为我的生活找到一种方式,打印出它用于找到总和的整数。有没有办法我可以重新写它来让它做到这一点,或者我应该如何编写代码,以便它可以做到这一点? from itertools import combinations def com_subset_sum(seq, target): if target == 0 o

    8热度

    2回答

    鉴于两个数字表和汇总的列表(没有在任何特定的顺序)的对集: a = [1,2,3] b = [4,5,6] c = [6,7,8] 我如何才能找到对d的所有集合,其中d[k] = (a[i], b[j])这样c[k] = a[i] + b[j]哪里对使用a和b而没有替换? (所有的列表可以有重复) d = [(1,5), (3,4), (2,6)] d = [(2,4), (1,6),

    1热度

    1回答

    我是C++新手,正在编写一组子集程序,它接受用户定义的一组数字,其中第一个数字被认为是总数。我曾尝试使用DDD来调试此程序,但是我仍然遇到了出界错误。我似乎无法找出发生这种情况的原因。任何线索?谢谢。 以下是错误: terminate called after throwing an instance of 'std::out_of_range' what(): vector::_M_range

    0热度

    1回答

    我需要找到最优的子集,解决分区问题后,使用动态规划伪多项式时间算法。 更具体地说,我不能让这个答案的意义:https://stackoverflow.com/a/890243/1317826 我无法理解如何从布尔表构建最佳的子集。 分区上的问题维基百科的文章有太:http://en.wikipedia.org/wiki/Partition_problem 是否有人可以摆脱一些关于它的光?

    4热度

    2回答

    我正在研究一个必须处理背包/子集和问题的特例的问题。问题如下: 您有一组随机大小减小的包大小:{47, 35, 22, ...}。您具有的值就是这样的小部件数量:#widgets = 33. 查找可以构成捆绑包小部件数量的最少捆绑数量。如果没有办法返回等于数量的集合,则返回null。 实施例1: 包大小:46,25,12,如图4所示,3 量:30 返回值:{46:0,25:0,12:2, 4:0,