Colors = {red, yellow, green, ..., n1}
Sizes = {small, medium, big, ..., n2}
Shapes = {round, soft, square, ..., n3}
Fills = {hollow, solid, gradient, ..., n4}
Cómo obtener todas las posibles combinaciones para las siguientes condiciones:
- El tamaño mínimo de las combinaciones es 1 y el tamaño máximo n es igual al número total de grupos: mínimo 1 {red}, máximo 4 {red, small, round, hollow}
- No se pueden repetir los elementos: {red, red} no es una combinación válida
- Sólo puede haber un elemento de cada grupo: {red, yellow} no sería una combinación válida
- El orden no importa: no hay que diferenciar entre {red, small} y {small, red}
Para el siguiente ejemplo, si no me he equivocado, he calculado que serían 63 combinaciones válidas:
Colors = {red, yellow, green}
Sizes = {small, medium, big}
Shapes = {round, soft, square}
9 (3+3+3) combinaciones de 1 elemento: {red}, {yellow}, {green}, ...
27 (3x3+3x3+3x3) combinaciones de 2 elementos: {red, small}, {red, medium}, {red, big} ...
27 (3x3x3) combinaciones de 3 elementos: {red, small, round}, {red, small, soft}, {red, small, square} ...
Qué formula podría usar en http://www.wolframalpha.com/ para resolver cualquier caso (número de grupos y número de elementos en cada grupo variables)? Basta con obtener el número total de combinaciones, no sería necesario generar el listado de combinaciones.
Gracias!
Creo que en este post de Mathematics SE responden a tu pregunta. En tu ejemplo, serían 3 opciones + 1 (no incluir ninguna opción de ese grupo) = 4 opciones en cada grupo, así que 4 x 4 x 4 = 64 - 1 (la opción {0,0,0} = 63.
Es decir, multiplicar el número de opciones (+1 por el 0 = no incluir nada de ese grupo) de todos los grupos y restarle 1 (la opción de no incluir nada de ningún grupo).