Wie finde ich alle möglichen k ganzen Zahlen, deren Summe einer bestimmten Zahl in R @ entsprich
Angenommen, ich habe eine ganze Zahln
undk
, Ich muss alle möglichen Kombinationen von @ findk
ganze Zahlen, die sich zu @ summiern
. Ich habe mich gefragt, wie ich das effizient umsetzen kann.
right now, was ich tue, ist super langsam, ich habe @ erstelkth
kartesisches Produkt einer Sequenz von 1 bis n. Und dann alle möglichen Kombinationen durchlaufen, um zu prüfen, ob sie die Summe erfüllen. Unten ist mein Code.
erhalten zuerst k kartesisches Produkt
cart = function(v,k){
x = v
f = v
for(i in 1:(k-1)){
f = merge(f,x,all=T)
f = as.matrix(f)
colnames(f) = NULL
}
return(f)
}
v ist die Folge von 1 bis n und k ist die ganze Zahl
then Schleife über
combine = cart(v=seq(1,n),k=k)
sum = 0
for(i in 1:dim(combine)[1]){
if(sum(combine[i,])==n){
sum = sum + sum(combine[i,])
}
}
dies ist super langsam und ich habe mich gefragt, gibt es eine schnellere Möglichkeit, dies zu implementieren?