Java: есть ли инструмент, который позволяет мне вводить, хранить и оценивать математические формулы? - PullRequest
2 голосов
/ 31 декабря 2008

Даже что-то очень элементарное - это хорошо. Например, ввести и оценить что-то вроде x + 1, где x - переменная, которую я могу указать.

Я думал написать свои собственные, используя строки для каждой формулы, регулярное выражение для их анализа и т. Д., Но давайте предположим, что моя цель - быть настолько ленивым, насколько это возможно, и что если есть другой вариант формальный), я бы лучше попробовал использовать это вместо этого, сначала.

Есть ли что-нибудь подобное, что-то подобное?

Ответы [ 8 ]

4 голосов
/ 31 декабря 2008

Я знаю следующие библиотеки:

3 голосов
/ 31 декабря 2008

Можно подумать об использовании сценариев из Java 6. Справочный JDK поставляется с реализацией JavaScript, и вы можете подключать и другие языки.

1 голос
/ 02 января 2009

Вы можете попробовать LibFormula , библиотеку для определения формул, основанную на стандарте OpenDocument OpenFormula.

OpenFormula была написана для приложений с электронными таблицами и использует синтаксис, близкий к формулам Excel. Более подробную информацию можно найти в Pentaho-Wiki

Пример:

=[x]+1
1 голос
/ 31 декабря 2008

Я создал библиотеку Java, чтобы сделать это как пример обучения для Lex / YACC для себя. Он был включен в более крупный проект, где, кажется, работает хорошо. Если бы я снова начал более крупный проект, я бы следовал приведенным выше советам и использовал механизм сценариев Java.

1 голос
/ 31 декабря 2008

Пару лет назад я успешно использовал JEP , и он все еще активно развивается. Я считаю, что в те дни у них была более разрешительная лицензия, но, вероятно, она дешевле, чем кодирование ее самостоятельно (в зависимости от ваших конкретных потребностей и навыков).

0 голосов
/ 15 февраля 2013

Некоторых может заинтересовать новый инструмент под названием Formula 4J .

Он коммерческий, поэтому не для всех.

0 голосов
/ 25 мая 2011

вы можете проверить exp4j , который я выпустил под Apache License 2.0 . он реализует алгоритм маневрового двора Дейкстры и хорошо работает с многопараметрическими функциями, такими как f(x,foo)=log(foo^(x^-1))

0 голосов
/ 31 декабря 2008

Может быть MathML ?

MathML - это низкоуровневая спецификация для описания математики как основы для межмашинных коммуникаций, которая обеспечивает столь необходимую основу для включения математических выражений в веб-страницы. Это также важно при публикации рабочих процессов для науки и техники и везде, где математика должна обрабатываться программным обеспечением. Новая версия приносит, например, улучшения для доступности математики и для формул на языках, написанных справа налево. Основная разметка остается той же, поскольку у сообщества есть семилетний опыт работы с ней.

...