Su pregunta puede reformularse así:
Dado un número N, encontrar todos los conjuntos [S1, S2, S3 .....], donde la suma de cada conjunto es igual a N. El tamaño de los conjuntos viene dado por el número L.
En primer lugar vamos a considerar el caso de L=2
.Esta significa que usted puede tener los siguientes conjuntos
(9,1) , (8,2), (7,3) , (6,4) , (5,5)
Voy a llamar a esta solución de la base y pronto ver por qué .
Vamos a cambiar nuestra L a 3 ahora y rehacer nuestra respuesta:
Así que vamos a considerar el número 9. ¿Existe una lista de este tipo L
tal que sum(L) + 9 = 10
? La respuesta obvia es No, pero lo interesante aquí no es la respuesta, sino la pregunta en sí misma. Básicamente estamos pidiendo un conjunto de elementos 2
que se pueden resumir en el número 1
. Este es el mismo problema que fue resuelto por la solución base.
Así que, por tanto, para cada número x
en [9,8,7,6,5,4,3,2,1]
se intenta encontrar un conjunto [a,b]
tal que x+a+b = 10
.
Esta no es una respuesta completa, pero la idea es que vea el patrón aquí, y use la recursión para calcular el caso base como se hizo anteriormente y luego descubra la llamada recursiva que completará su solución. ¡Buena suerte!
La forma menos ambigua/más precisa de término sería "enteros positivos", en lugar de "enteros", "números" o "números enteros". –
+1. Buena pregunta. Hay una gran cantidad de teoría sobre esto en Number Theory, realizada por G. H. Hardy y S. Ramanujan. – Guru