Решение разложения числа
Новая функция Groupings предоставляет эффективный метод генерирования всех возможных результатов комбинирования определённых объектов и операций. В частности, она очень полезна для решения некоторых числовых игр, таких как во французской телепрограмме "Des chiffres et des lettres", или для нахождения ответов на некоторые популярные недавние арифметические вопросы, размещённые в социальных сетях.
Определить, как получить 10, используя целые числа 1, 1, 5, 8 и четыре основные арифметические действия.

ints = {1, 1, 5, 8};
ops = {Plus, Subtract, Times, Divide};
Существует 3840 возможныx комбинаций данных четырёх целых чисел и действий с двумя величинами.

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

Далее представлены несколько примеров.

RandomSample[combs, 10]

Вычислите результат комбинаций, которыe содержат деление на 0.

results = Quiet@ReleaseHold[combs];
Это единственная комбинация, в итоге которой получаем 10.

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

Наиболее частым результатом является число 13, генерированное 240 различными способами.

TakeLargestBy[Tally[results], Last, 5]
