Problem
Ich habe ein GROSSARTIGES neues Programm, das die Art und Weise verändern wird, wie wir über Mathematik im Computer denken, algebraische Funktionen aufnehmen und ERSTAUNLICHE Dinge damit machen! Das einzige Problem ist, dass ich nur bestimmte Algebra analysieren kann, sonst faltet sich das Universum in sich zusammen, was schlecht ist. Glücklicherweise brauche ich nur ein paar grundlegende Operationen in der Eingabe dieses erstaunlichen neuen Programms, aber ich brauche es immer noch erweitert!
Regeln
Eine Antwort muss die folgenden Ausdrücke vereinfachen können
2+2sollte auf reduzieren4(5+x)+6sollte auf reduzierenx+11(x+2)^2sollte auf reduzierenx^2+4*x+4(x-5)*(3+7*x)sollte auf reduzieren7*x^2-32*x-155*x+9*xsollte auf reduzieren14*x(2*x^2)*x^3sollte auf reduzieren2*x^5
Antworten müssen in der Lage sein, Klammern VOLLSTÄNDIG zu entfernen, was bedeutet, dass die gesamte Verteilung stattfinden muss.
Answers sollte in der Lage sein, alle folgenden Operatoren und Standard-Token zu verarbeiten:
+(Die Additionsfunktion)-(Die Subtraktionsfunktion)*(Die Multiplikationsfunktion)((Die linke Klammer zur Angabe einer Gruppe))(Die rechte Klammer gibt das Ende der zuletzt gestarteten Gruppe an.)x(Die Standardvariable)[0-9]+(wörtliche nichtnegative Zahlen)
Die Antworten müssen mindestens quadrieren können, wobei die Notation expr ^ 2 einschließlich (expr) ^ 2 rekursiv verwendet wird, da (expr) selbst ein Ausdruck ist;)
Eine Lösung muss in einer Standard-Infix-Notation vorliegen, kein RPN-Unsinn!
Keine Bibliotheksfunktionen wie Mathematica
Simplifyerledigen dies für Sie.Die Lösung sollte eine Funktion sein, die ein einzelnes Argument aufnimmt und die erweiterte Version zurückgibt
Da dies Code-Golf ist, gewinnt die Antwort mit den wenigsten (Schlüssel-) Schlägen, 1 Woche nach OP.
Anmerkungen
Natürlich gibt es in dieser Welt der Mathematik keine Räume! Nur Klammern.
Es ist also keine Division erforderlich, um vor dem Factoring zu sparen
Es gilt die Standardreihenfolge.
Ich bin mir bewusst , dass einige , was ich frage Vereinfachung ist (zB 2+2=4) , wo andere Teile eigentlich das Gegenteil sind, wie zum Beispiel den Ausbau (x+1)^2zu sein x^2+2x+1. Dies ist beabsichtigt. :) :)
-25 Striche für eine Lösung, die (Ausdruck) ^ n anstelle von nur (Ausdruck) ^ 2 ausführen kann
-15 Striche für eine Lösung, die in der Lage ist, nebeneinander stehende Multiplikationen zu bewerten, z. B. 4x+5x== 9xoder 4(x+1)=4x+4
-5 Striche für eine Lösung, die mehrere Variablen verarbeiten kann (Eine Variable ist genau ein Kleinbuchstaben)
-5 Striche für eine Lösung, die führende Nullen entfernen kann ( 007nur 7[Nicht heute, Bond!] [Herrgott, jetzt habe ich das Gefühl, ich schreibe Lisp])