La guía paso a paso o código que encontrarás en este artículo es la resolución más sencilla y efectiva que hallamos a tus dudas o problema.
Solución:
Pruebe esta función recursiva:
f(s, n) = 1 if s = 0
= 0 if s != 0 and n = 0
= sum f(s - i, n - 1) over i in [0, s] otherwise
Para usar la programación dinámica, puede almacenar en caché el valor de f después de evaluarlo y verificar si el valor ya existe en el caché antes de evaluarlo.
Hay una fórmula de forma cerrada: binomial(s + n – 1, s) o binomial(s+n-1,n-1)
Esos numeros son los números símplex.
Si desea calcularlos, utilice la función log gamma o la aritmética de precisión arbitraria.
Consulte https://math.stackexchange.com/questions/2455/geometric-proof-of-the-formula-for-simplex-numbers
Tengo mi propia fórmula para esto. Nosotros, junto con mi amigo Gio, hicimos un informe de investigación sobre esto. La fórmula que obtuvimos es [2 raised to (n-1) - 1]
donde n es el número que buscamos cuantos sumandos tiene.
Intentemos.
- Si n es 1: sus sumandos son o. No hay dos o más números que podamos sumar para obtener una suma de 1 (excluyendo 0). Probemos con un número más alto.
- Probemos 4.
4 has addends: 1+1+1+1, 1+2+1, 1+1+2, 2+1+1, 1+3, 2+2, 3+1
. Su total es 7.
Comprobemos con la fórmula. 2 elevado a (4-1) – 1 = 2 elevado a (3) – 1 = 8-1 =7. - Intentemos 15. 2 elevado a (15-1) – 1 = 2 elevado a (14) – 1 = 16384 – 1 = 16383. Por lo tanto, hay 16383 formas de sumar números que serán iguales a 15.
(Nota: los sumandos son solo números positivos).
(Puede probar con otros números para comprobar si nuestra fórmula es correcta o no).
Sección de Reseñas y Valoraciones
Si entiendes que te ha resultado útil este artículo, agradeceríamos que lo compartas con otros juniors así nos ayudas a extender este contenido.