Tengo un conjunto de número, y quiero saber en cuántas maneras de establecer con cada número se utiliza cero, una o más veces una cierta suma en todo caso, ser logrado. No importa el orden. Por ejemplo, yo tengo una suma de '10' y el conjunto de [1,2] y quiero saber de cuántas maneras puede 1 y 2 se suman para llegar a 10. Sí, '1' y '2' tienen que ser utilizados más de una vez.
Ejemplo
10 = 1 + 1 + 2 + 2 + 2 + 2
10 = 1 + 1 + 1 + 1 + 2 + 2 + 2
10 = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1
...
Hay más posibilidades para el ejemplo de la suma. No necesito la forma en que la suma es llegado yo.e (10 = 1 + 1 + 2 + 2 + 2 + 2 o 10 = 1 + 1 + 2 + 2 + 2 + 2 ...) cuántas combinaciones de '1' y '2' dame 10. Estoy trabajando con grandes conjuntos y números, así de simple enfoque será muy útil. Gracias
No, el no importa el orden de la suma. Si es 10 = 2* + 4*o 4* + 2*uno o cualquier otra permutación de ellos. El intento que hice implica el uso de un ordenador. Yo estaba pensando en algo como esto.
for (i = 0; i < sum/i; i++):
for (j = 0; j<sum/j; j++):
if (num1*i + num2*j == sum):
numberOfWays +=1
Pero esto no es útil para grandes conjuntos como varios bucles for anidados son engorrosos. Estoy buscando una solución elegante.
ACTUALIZACIÓN de UN número puede ser utilizado 0 veces.