Aufgabe 4 --------- Lehrer Lämpel hat sich ein Spiel ausgedacht, um die eklatante Kopfrechenschwäche seiner Schüler zu mildern. Er nennt `n' positive ganze Zahlen und eine Ergebniszahl (ebenfalls eine positive ganze Zahl). Die Schüler müssen dann aus den Zahlen und den arithmetischen Operatoren `+', `-', `*' und '/' einen Ausdruck bilden, der die Ergebniszahl ergibt oder ihr möglichst nahe kommt. Jede Zahl darf dabei höchstens einmal verwendet werden und die Zwischenergebnisse des aufgestellten Ausdrucks müssen jeweils positive ganze Zahlen sein (d.h. insbesondere die Division muß glatt aufgehen). Zum Beispiel: aus den Zahlen 1, 2, 5, 10 lassen sich die folgenden Ergebniszahlen bilden 2 = 1 + (2 / (10 / 5)) ... 11 = 1 + 10 12 = 2 * (1 + 5) 13 = ((1 + 5) / 2) + 10 14 = (5 + 10) - 1 15 = (1 + 2) * (10 - 5) 16 = 1 + (5 + 10) 17 = 2 + (5 + 10) 18 = ((1 + 2) + 5) + 10 19 = (2 * 10) - 1 20 = ((5 - 1) / 2) * 10 ... 99 = (2 * (5 * 10)) - 1 Nicht immer klappts: 97 läßt sich zum Beispiel nicht bilden, man erreicht nur 98. 98 = 2 * ((5 * 10) - 1) Im Fall von 85 ist der beste Ausdruck gar 5 Zähler entfernt. 80 = ((1 + 2) + 5) * 10 90 = 2 * (5 * (10 - 1)) Für geübte Schüler gibt es schwierigere Aufgaben: mit 1, 2, 3, 13, 52, 70, 84, 87, 125 und 137 lassen sich 1 = 1 12 = 13 - 1 123 = 125 - 2 1234 = ((2 * 52) + (13 * 87)) - 1 12345 = 2 + (13 + ((3 + 87) * 137)) 123456 = (1 + ((13 * ((70 * 137) - 87)) - 84)) 1234567 = ((87 * ((52 * (1 + 70)) + (84 * 125))) - 137) bilden. Schreibe/schreibt ein Haskell Programm, das diese Knobelaufgaben löst! Viel Spaß dabei!