subset-sum相关内容

从具有重复元素的数组中随机找到一个组合,其和等于n

如何从具有重复元素的array中随机找到一个组合,其总和等于n。 示例 array为[1, 2, 2, 3]和n为3 答案为1+2、1+2、3 如果randomSubsetSum(array, n)为解决方案,则randomSubsetSum([1,2,2,3], 3)将返回1+2、1+2、3之一。注意:1+2出现的频率是3的两倍 真实场景:从题库中随机选择试题 我发现了一 ..
发布时间:2022-08-06 16:59:41 Java开发

使用动态规划来找到其和最接近给定数字M的数字的子集

给定由n个正整数组成的集合A,a1,a2,...A3和另一个正整数M,我要找出A的一个子集,它的和最接近于M。换句话说,我要找到A的一个子集A‘,使其绝对值|M-􀀀Σa∈A’|最小化,其中[Σa∈A‘a]是A’的个数的总和。我只需要返回解决方案子集A‘的元素之和,而不报告实际的子集A’。 例如,如果A为{1,4,7,12},M=15,则解的子集为A‘={4,12},因此算法只需返回4+12 ..
发布时间:2022-04-01 11:13:44 其他开发

用乘法求子集的总和

假设我们有一个集合 {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}让 S 成为我们的总和.S ..
发布时间:2022-01-09 16:36:59 其他开发

在 Prolog 中对列表进行分区

我正在尝试创建一个 Prolog 谓词,在给定列表的情况下,可以看到该列表是否可以分成两个总和相同的列表. 我有一个工作列表总和谓词,所以我在我的分区谓词中使用它.我首先尝试对谓词进行编码,以查看列表的第一个元素是否等于列表其余部分的总和 ([2,1,1]).这就是我对这种情况的看法. 可分区([X|Y]):-总和([X],总和),总和([Y],SUM2),总和 = 总和 2. 但是,我 ..
发布时间:2022-01-09 16:19:59 其他开发

子集和找到所有加起来为一个数字的子集

我一直在学习动态编程,我想通过打印所有加起来为一个数字的子集来进一步解决经典的子集求和问题.我该怎么做呢?截至目前,我知道如何根据是否有一个子集相加来打印真假 public static boolean hasSum(int [] array, int sum){int len = array.length;boolean[][] table = new boolean[sum+1][len+ ..
发布时间:2022-01-09 16:14:22 Java开发

动态规划和

您将如何使用动态规划来查找数组中的正整数列表,其总和最接近但不等于某个正整数 K? 我有点想不通. 解决方案 通常的措辞是您正在寻找最接近但不超过 K 的值.如果您的意思是“小于 K",它只是表示您的 K 值比平时大一.如果你的意思真的只是“不等于 K",那么你基本上会运行两次算法,一次找到小于 K 的最大和,然后再次找到大于 K 的最小和,然后选择绝对值与 K 的差异最小. ..

子集求和算法

我正在解决这个问题: 子集和问题将 X = {x1, x2 ,…, xn} 的 n 个整数和另一个整数 K 作为输入>.问题是检查是否存在 X 的子集 X' 其元素总和为 K 并找到该子集(如果有).例如,如果 X = {5, 3, 11, 8, 2} 和 K = 16 那么答案是 YES 因为子集X' = {5, 11} 的总和为 16.为 Subset Sum 实现一个算法,其运行时间至 ..
发布时间:2021-12-06 19:28:49 其他开发

找到所有可能的数字组合以达到给定的总和

您将如何测试给定 N 组数字中所有可能的加法组合,使它们相加为给定的最终数字? 一个简单的例子: 要添加的一组数字:N = {1,5,22,15,0,...} 期望结果:12345 解决方案 这个问题可以通过所有可能和的递归组合来解决,过滤掉那些达到目标的和.这是 Python 中的算法: def subset_sum(numbers, target, partial=[] ..

不能从数组中的数字之和形成的最小数字

这个问题是在亚马逊面试时问我的 - 给定一个正整数数组,你必须找到不能由数组中数字之和组成的最小正整数. 示例: 数组:[4 13 2 3 1]result= 11 { 因为 11 是不能从给定数组元素形成的最小正数 } 我所做的是: 对数组进行排序 计算前缀和 反转 sum 数组并检查下一个元素是否小于 1大于总和,即 A[j]<=(sum+1).如果不是这样,那么答案 ..

用于子集总和等于或接近给定比率的随机分区的快速 Python 算法

这个问题是我之前问题的延伸:快速 python 算法,用于从子集总和等于比率的数字列表中查找所有可能的分区.我想划分一个数字列表,以便子集总和的比率等于给定值.不同之处在于我现在有一长串 200 个数字,因此枚举是不可行的.请注意,虽然列表中当然有相同的数字,但每个数字都是可区分的. 随机导入lst = [random.randrange(10) for _ in range(200)] 在这 ..
发布时间:2021-09-01 18:33:42 Python

递归:理解(子集总和)包含/排除模式

我需要了解这种递归是如何工作的,我了解简单的递归示例,但更高级的示例很难.甚至认为只有两行代码我遇到了问题...... return 语句本身.我只是对它是如何工作的,尤其是和/或操作符的空白.非常欢迎任何见解. bool subsetSumExists(Set & set, int target) {如果(set.isEmpty()){返回目标 == 0;} 别的 {int element ..
发布时间:2021-07-05 19:14:46 C/C++开发

查找总和最接近给定数字的所有数字 python

我在下面有一个脚本,它给出了与给定总和最接近的 2 个值.它还遍历给定和的列表,并在每次迭代后删除已使用的数字. 我需要修改这个脚本,以便它生成最接近每个总和的必要数量的值,而不是 2.脚本需要接受浮点值并且不能重复使用值.实际上,它需要选择最接近目标的最有效的集合,更新该集合以删除使用的值,然后移动到下一个目标等.. 对于需要 3 个数字或 4 个数字等的特定用例/集合,它不能很好地 ..
发布时间:2021-06-26 19:46:16 Python

Python子集总和

我正在尝试编写一个函数,该函数不仅可以确定集合子集的总和是否与所需的目标数相加,而且还可以打印作为解决方案的子集. 这是我查找子集是否存在的代码: def subsetsum(array,num):如果 num == 0 或 num 如何修改它以记录子集本身以便我可以打印它?提前致谢! 解决方案 基于您的解决方案: def subsetsum(array,num):如果 nu ..
发布时间:2021-06-25 20:02:53 Python

返回总和为给定值的所有子集(子集总和问题)

子集和问题是创建一个算法的问题,该算法需要一个数组并求和,然后返回和等于给定和的自变量数组的所有子集.我正在尝试解决各种子集和问题(使用JavaScript),其中只允许使用非负整数,并且返回总和等于传入总和的所有子集. 我采用了动态编程方法来解决该问题,并创建了一个函数,该函数返回一个二维布尔数组,该数组显示参数数组的哪些子集与参数相加.每行代表参数数组中的数字(第一行代表第一个元素,第二 ..
发布时间:2021-05-19 19:30:24 前端开发