Programm, dass Terme mit einer Variablen vereinfachen kann

Neue Frage »

Auf diesen Beitrag antworten »
JAB6240 Programm, dass Terme mit einer Variablen vereinfachen kann

Meine Frage:
Hallo,

ich möchte eine iOS-App in Objective-C schreiben, die Terme, die man als String mit der Infix-Notation eingibt,
ableitet. Eine mögliche Eingabe wäre z.B.: "3*X+5". Es ist mir nun gelungen, den Term abzuleiten, und den abgeleiteten Term in Form der Postfix-Notation auszugeben. Dieser abgeleitete Term ist aber noch gar nicht
vereinfacht, sodass bei dem oben genannten Beispiel folgendes rauskommt: "0 X * 3 1 * + 0 +". Das ist zwar schon die richtige Ableitung, aber noch lange nicht vereinfacht. Welchen Algorithmus benötigte man, um diesen Term zu vereinfachen, sodass nur "3" rauskommt?

Vielen Dank für Hilfe im Voraus


Meine Ideen:
Der zu vereinfachende Term liegt sowohl in Postfix- als auch in Infixnotation vor.
 
Auf diesen Beitrag antworten »
eulerscheZahl

Da führt wohl kein Weg daran vorbei, Vereinfachungsregeln zu definieren:
  • Multiplikation mit 0 gibt 0
  • Multiplikation mit 1 / Addition mit 0 ändert nichts
  • Rechnung mit Konstanten kann berechnet und eingesetzt werden
  • Minus mal Minus gibt Plus
  • ...


Ich habe vor einiger Zeit mal C# Code dazu hochgeladen, falls der dir weiterhilft: Link, ab Zeile 150.
Die Funktion wird hier aber über einen Binärbaum gespeichert.
Habe das auch noch in Java auf der Platte, falls Interesse besteht.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »