Resolva uma decomposição numérica
A nova função Groupings oferece um método poderoso de possíveis resultados da combinação de certos objetos e operações. Em especial, é muito útil para resolver alguns jogos numéricos tais como aqueles do programa de TV francês "Des chiffres et des lettres", ou algumas questões aritméticas populares recetemente postadas em redes sociais.
Determine como obter 10 usando os números inteiros 1, 1, 5, 8 e as quatro operações aritméticas básicas.

ints = {1, 1, 5, 8};
ops = {Plus, Subtract, Times, Divide};
Existem 3.840 combinações possíveis desses quatro números inteiros e as operações binárias dadas.

Length[combs = Groupings[Permutations[ints], ops -> 2, HoldForm]]

Abaixo, uma amostra dessas combinações.

RandomSample[combs, 10]

Calcule o resultado de cada combinação, muitas delas envolvendo a divisão por 0.

results = Quiet@ReleaseHold[combs];
Esta é a única combinação que resulta em 10.

Cases[Thread[Equal[combs, results]], _ == 10]

O resultado mais frequente é 13, gerado em 240 formas diferentes.

TakeLargestBy[Tally[results], Last, 5]
