Solución de una descomposición numérica
La nueva función Groupings proporciona un potente método para generar todos los posibles resultados de la combinación de ciertos objetos y operaciones. En particular, es muy útil para resolver algunos juegos numéricos tales como aquellos en el programa de TV francesa Des chiffres et des lettres, o algunas preguntas aritméticas populares recientes posteadas en las redes sociales.
Determine cómo obtener 10 usando los números enteros 1, 1, 5, 8 y las cuatro operaciones aritméticas básicas.
ints = {1, 1, 5, 8};
ops = {Plus, Subtract, Times, Divide};
Existen 3.840 combinaciones posibles para estos cuatro números enteros y las operaciones binarias dadas.
Length[combs = Groupings[Permutations[ints], ops -> 2, HoldForm]]
Aquí hay una muestra de ellas.
RandomSample[combs, 10]
Calcule el resultado de cada combinación, muchas de ellas involucran la división entre 0.
results = Quiet@ReleaseHold[combs];
Ésta es la única combinación que produce 10.
Cases[Thread[Equal[combs, results]], _ == 10]
El resultado más frecuente es 13, el cual es generado en 240 formas diferentes.
TakeLargestBy[Tally[results], Last, 5]