Джава:Доступен ли инструмент, который позволит мне вводить, хранить и оценивать математические формулы?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Образец:

=[x]+1

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

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

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

Может быть МатематикаML?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top