Код Java для решения динамического уравнения с одним неизвестным

В моей программе есть различные уравнения, такие как x = y + z.

Когда пользователь ввел все переменные уравнения, кроме одной, я хочу, чтобы моя программа вычислила неизвестное:

Ввод данных пользователем y=5 and z=2 --> unknown x = 5 + 2 = 7

Ввод данных пользователем x=1 and y=3 --> unknown z = 1 - 3 = -2

У меня много уравнений, и я хочу избежать необходимости вручную изолировать каждую переменную... надеюсь, вы понимаете.

Я пробовал и JEP, и JScience, но безуспешно.


person thomas h    schedule 23.06.2011    source источник
comment
Итак, будет n переменных с заданным n-1? Какие математические операторы разрешены в вашей среде? (+ и -, очевидно, любые другие?). Будут ли разрешены выражения в квадратных скобках?   -  person James T Snell    schedule 23.06.2011
comment
Кроме того, будет ли каждая переменная появляться в уравнении только один раз? Будет ли только первое уравнение содержать несколько переменных, а остальные — просто простые присваивания, такие как y=10?   -  person Jeremy Salwen    schedule 24.06.2011
comment
Да n переменных с заданным n-1. Операторы включают +,-,*,/,^2,sqrt. Да, каждая переменная появится только один раз. Пользователю предлагается ввести данные, когда достаточно входных данных (то есть n-1), программа может вычислить неизвестное. В зависимости от того, какие переменные пользователь выбирает для ввода, уравнение может быть, например. 10 = х + 20 или 10 = 5 + у или z = 0,24 + 5,24...   -  person thomas h    schedule 24.06.2011
comment
Проблема заключается в том, что у меня есть много уравнений, таких как: x = (z + y - z) / (i ^ 2 * g), и не обязательно x является единственным неизвестным. Я хочу избавить себя от ввода всех вариантов уравнения, где мне пришлось бы изолировать каждую переменную - в этом случае я получаю 6 разных уравнений;)   -  person thomas h    schedule 24.06.2011


Ответы (1)


Как насчет JbcParser? Это коммерческий продукт с небольшой стоимостью, поэтому я не знаю, исключает ли это его из рассмотрения. Это относится к тому же классу парсеров, который вы исследуете. У них есть онлайн-демонстрация, с которой вы можете поиграть, по крайней мере, чтобы увидеть, соответствует ли она вашим потребностям.

person demongolem    schedule 01.07.2011