擅长:python、mysql、java
<p>似乎你的问题是,是否有一种有效的方法来找到{1,2,…,90}的所有10个元素子集,允许重复,求和为100。你知道吗</p>
<p>很容易计算出存在多少这样的子集:</p>
<pre><code>N <- 1:90 # values we can select
k <- 10 # num to select (repeats allowed)
n <- 100 # target
num <- matrix(NA, n, k) # (i,j) is number of subsets of size j summing to i
num[,1] <- as.numeric(1:n %in% N) # base case
for (kval in 2:k) {
num[,kval] <- sapply(1:n, function(jval) {
sum(num[intersect(1:n, jval-N),kval-1])
})
}
num[n,k] # Number of combinations
# [1] 1.731031e+12
</code></pre>
<p>所以你在问,是否有一种有效的方法来计算和输出一组1.73万亿长度的向量。我认为答案是否定的,这是一个天文数字的向量输出,存储或操纵。你知道吗</p>