Verhältnis von mehreren Unbekannten

gigx

Grünschnabel
Hallo zusammen.

Für mein Projekt möchte ich ein Verhältnis zwischen mehreren Unbekannten aufstellen und diese lösen, so dass ich die kleinsten natürlichen Zahlen bekomme.

Hier ein Beispiel, wie es aussehen könnte:
Code:
Solve(a = f and a = c and 4 * a = e and b = 2 * e and b = 2 * c + 2 * d + f)

Resultat: a = 2, b = 16, c = 2, d = 5, e = 8 und f = 2

Muss ich das selber implementieren oder gibt es soetwas bereits in Java?
Ich habe nichts darüber gefunden, also gehe ich davon aus, dass ich es selbst schreiben muss. Leider muss ich gestehen, dass ich keinen Startpunkt habe, wie würdet ihr vorgehen?

Ich würde eine Klasse z.B. Equation machen, wo jede Gleichung einzeln ist, in der wird nach jeder Variable aufgelöst.
Und eine zweite Klasse, die dann versucht beziehungen zwischen den Gleichungen festzustellen und diese zu lösen.

Was meint Ihr dazu?

Danke!
 
Bin zwar kein guter Javanese, würde aber folgender Maßen vorgehen:

Zuerst die Operationen wie in der Mathematik nach Prioritäten ordnen. (Punkt vor Strich, Qaudrieren vor Punkt, Klammer vor Quadrat usw.)

Dann mal nach den Operator "and" in einzelne Aufgaben splitten.
Raus kommt:

a = f
a = c
4 * a = e
b = 2 * e
b = 2 * c + 2 * d + f

Und dann würde ich jede Operation in einer Schleife durchgehen, also 0, 1, 2, 3, 4, 0, 1 und nach typischen Funktionsverhalten auflösen, also konstanten suchen, und auf beiden Seiten das selbe zu machen. Das könnte man dann erweitern, also das er erkennt, wie er sich daraus eigene Formeln zusammenbauen könnte, um hinter das Ergebniss zu kommen.
 
Zurück