Como encontrar todos os possíveis números inteiros k cuja soma é igual a um determinado número em R

suponha que eu tenha um número inteiron ek, Preciso encontrar todas as combinações possíveis dek números inteiros que somamn. Eu queria saber como faço para implementar isso de forma eficiente.

agora, o que estou fazendo é super lento, eu crieikth produto cartesiano de uma sequência de 1 a n. E, em seguida, faça um loop sobre todas as combinações possíveis para verificar se ela satisfaz a soma. Abaixo está o meu código.

obter primeiro produto k cartesiano

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 é a sequência de 1 a nek é o número inteiro

então faça um loop

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,])
  }
}

isso é super lento e eu queria saber se existe alguma maneira mais rápida de implementar isso?

questionAnswers(2)

yourAnswerToTheQuestion