Java:Gibt es ein tool zur Verfügung, gestatten Sie mir Eingangs, speichern und auswerten von mathematischen Formeln?

StackOverflow https://stackoverflow.com/questions/402833

  •  03-07-2019
  •  | 
  •  

Frage

Sogar etwas sehr rudimentär ist in Ordnung.Wie die Eingabe und Auswertung etwas wie x+1, wobei x eine variable ist, die ich angegeben.

Ich dachte an das schreiben meiner eigenen mit Strings für jede Formel, regex zum Parsen von Ihnen, etc., aber nehmen wir an, mein Ziel ist es, so faul wie ich vielleicht davonkommen, und dass, wenn es eine andere Möglichkeit (besonders formal), würde ich eher versuchen, die stattdessen zuerst.

Gibt es irgendetwas gibt, macht so etwas?

War es hilfreich?

Lösung

Sie können denken über die Verwendung von Scripting von Java 6. Die Referenz JDK kommt mit einer JavaScript-Implementierung, und Sie können auch in anderen Sprachen stecken.

Andere Tipps

Ich weiß, dass die folgenden Bibliotheken:

Ich habe verwendet JEP mit Erfolg ein paar Jahren und es scheint immer noch zu sein aktiv entwickelt. Ich glaube, sie hatte eine permissive Lizenz zurück in jenen Tagen, aber es ist wahrscheinlich billiger als es selbst Codierung (je nach Ihren genauen Bedürfnissen und Fähigkeiten).

Ich habe gebaut eine java-Bibliothek, genau das zu tun als zu lernen Beispiel für Lex/YACC, für mich.Es wurde aufgenommen in ein größeres Projekt, wo es scheint gut zu funktionieren.Ich starte den größeren Projekt wieder, ich würde befolgen Sie die Ratschläge oben und verwenden Sie den Java-scripting-engine.

Sie könnten versuchen, LibFormula , eine Formel eavluation Bibliothek, die basiert auf OpenDocument- der Openformula-Standard.

Openformula wurde für Tabellenkalkulationsprogramme geschrieben und verwendet eine Syntax der Nähe von Excel-Formeln. Weitere Informationen finden Sie im Pentaho-Wiki

finden

Beispiel:

=[x]+1

Sie können überprüfen exp4j , die ich veröffentlicht unter die Apache License 2.0 . es implementiert Rangierbahnhof Dijkstra-Algorithmus, und arbeitet gut mit Multivariablen-Funktionen wie f(x,foo)=log(foo^(x^-1))

Einige in einem neuen Tool interessiert sein genannt formula4j .

Es ist kommerziell, also ist es nicht jedermanns Sache.

Vielleicht MathML ?

  

MathML ist eine Low-Level-Spezifikation für die Mathematik als Grundlage für die Maschine zu Maschine Kommunikation beschreiben, die für die Aufnahme von mathematischen Ausdrücken in Web-Seiten eine dringend benötigte Grundlage zur Verfügung stellt. Es ist auch wichtig, in Publishing-Workflows für Wissenschaft und Technologie und überall dort, wo Mathematik hat durch Software behandelt werden. Die neue Version bringt, zum Beispiel, Verbesserungen für die Zugänglichkeit der Mathematik, und für Formeln in Sprachen von rechts nach links geschrieben. Die grundlegende Markup bleibt das gleiche, wie die Gemeinschaft mit ihm sieben Jahre Erfahrung hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top