Lösen Sie eine Zahlzerlegungsaufgabe
Die neue Funktion Groupings ermöglicht es, alle möglichen Resultate aus der Kombination von Objekten und Operationen auf effiziente Weise zu generieren. Die Funktion ist besonders nützlich, um Rechenaufgaben, wie sie in der französischen TV-Sendung Des chiffres et des lettres vorkommen, oder die neuesten Arithmetiknüsse in den sozialen Medien zu lösen.
Legen Sie fest, wie Sie die Zahl 10 unter Verwendung der Zahlen 1, 1, 5, 8 und der vier Grundrechenarten erhalten.

ints = {1, 1, 5, 8};
ops = {Plus, Subtract, Times, Divide};
Es gibt 3 840 Möglichkeiten, diese vier ganzen Zahlen und die Rechenoperationen zu kombinieren.

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

Hier ist ein Beispiel:

RandomSample[combs, 10]

Berechnen Sie das Ergebnis jeder Kombination. Viele davon beinhalten die Division durch 0.

results = Quiet@ReleaseHold[combs];
Das ist die einzige Kombination, die 10 ergibt:

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

Das häufigste Ergebnis ist 13. Es kann auf 240 mögliche Arten generiert werden.

TakeLargestBy[Tally[results], Last, 5]
