【发布时间】:2018-05-27 00:18:00
【问题描述】:
我有以下数字 list (1,3,4,5,7,9,10,12,15),我想从这个 list 中找出所有可能的 3 数字组合,总和为 20。
我对@987654327@ 的研究使我找到了这篇文章: Finding all possible combinations of numbers to reach a given sum
Mark 提供的解决方案如下:
subset_sum = function(numbers,target,partial=0){
if(any(is.na(partial))) return()
s = sum(partial)
if(s == target) print(sprintf("sum(%s)=%s",paste(partial[-1],collapse="+"),target))
if(s > target) return()
for( i in seq_along(numbers)){
n = numbers[i]
remaining = numbers[(i+1):length(numbers)]
subset_sum(remaining,target,c(partial,n))
}
}
但是,我很难尝试调整这组代码以匹配我的问题。或者可能有更简单的解决方案?
我希望R 中的输出显示数字列表。
任何帮助将不胜感激。
【问题讨论】:
标签: r