Résolvez une décomposition numérique
La nouvelle fonction Groupings fournit une méthode puissante pour générer tous les résultats possibles de la combinaison de certains objets et opérations. En particulier, elle est très utile pour résoudre certains jeux numériques comme ceux de l'émission télévisée française Des chiffres et des lettres ou encore ceux de certaines questions arithmétiques récentes et populaires postées sur les réseaux sociaux.
Déterminez comment obtenir 10 en utilisant les entiers 1, 1, 5, 8 et les quatre opérations arithmétiques de base.
ints = {1, 1, 5, 8};
ops = {Plus, Subtract, Times, Divide};
Il existe 3840 combinaisons possibles de ces quatre entiers et des opérations binaires données.
Length[combs = Groupings[Permutations[ints], ops -> 2, HoldForm]]
Voici un échantillon d'entre eux.
RandomSample[combs, 10]
Calculez le résultat de chaque combinaison, dont plusieurs impliquent la division par 0.
results = Quiet@ReleaseHold[combs];
C'est la seule combinaison qui produit 10.
Cases[Thread[Equal[combs, results]], _ == 10]
Le résultat le plus fréquent est 13, généré de 240 façons différentes.
TakeLargestBy[Tally[results], Last, 5]