Cómo encontrar todos los k enteros posibles cuya suma de ellos es igual a un cierto número en R

supongamos que tengo un número enteron yk, Necesito encontrar todas las combinaciones posibles dek enteros que sumann. Me preguntaba cómo puedo implementar esto de manera eficiente.

en este momento, lo que estoy haciendo es muy lento, creékth producto cartesiano de una secuencia de 1 a n. Y luego repita todas las combinaciones posibles para verificar si cumple con la suma. A continuación está mi código.

primero obtenga k producto 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 es la secuencia de 1 a n y k es el entero

luego repite

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

esto es súper lento y me preguntaba si hay alguna forma más rápida de implementar esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta