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.
![Click for copyable input](assets.de/solve-a-number-decomposition/In_79.png)
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.
![Click for copyable input](assets.de/solve-a-number-decomposition/In_80.png)
Length[combs = Groupings[Permutations[ints], ops -> 2, HoldForm]]
![](assets.de/solve-a-number-decomposition/O_70.png)
Hier ist ein Beispiel:
![Click for copyable input](assets.de/solve-a-number-decomposition/In_81.png)
RandomSample[combs, 10]
![](assets.de/solve-a-number-decomposition/O_71.png)
Berechnen Sie das Ergebnis jeder Kombination. Viele davon beinhalten die Division durch 0.
![Click for copyable input](assets.de/solve-a-number-decomposition/In_82.png)
results = Quiet@ReleaseHold[combs];
Das ist die einzige Kombination, die 10 ergibt:
![Click for copyable input](assets.de/solve-a-number-decomposition/In_83.png)
Cases[Thread[Equal[combs, results]], _ == 10]
![](assets.de/solve-a-number-decomposition/O_72.png)
Das häufigste Ergebnis ist 13. Es kann auf 240 mögliche Arten generiert werden.
![Click for copyable input](assets.de/solve-a-number-decomposition/In_84.png)
TakeLargestBy[Tally[results], Last, 5]
![](assets.de/solve-a-number-decomposition/O_73.png)