Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Algorithmen (http://www.informatikerboard.de/board/board.php?boardid=17)
----- Programm, dass Terme mit einer Variablen vereinfachen kann (http://www.informatikerboard.de/board/thread.php?threadid=2209)


Geschrieben von JAB6240 am 03.04.2015 um 17:24:

  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.



Geschrieben von eulerscheZahl am 03.04.2015 um 21:00:

 

Da führt wohl kein Weg daran vorbei, Vereinfachungsregeln zu definieren:


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.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH