Например, я могу ввести в Google или WolframAlpha 6+6
или 2+237
, которые можно запрограммировать, запросив у пользователя a
и b
, а затем оценку return a+b
. Однако я могу также ввести 5*5^(e)
или любую другую комбинацию, однако программа жестко запрограммирована только для вычисления выражений a+b
.Как математические программы могут принимать уравнения любой формы?
Легко представить более сложные проблемы с кодом на любом распространенном языке.
return 5*pow(5,Math.E) #pseudocode
Но если я не могу ожидать ввода пользователя, чтобы быть в данной форме, то это не так просто, как
x = Input("enter coefficient")
b = input("enter base")
p = input("enter power")
print(x*pow(b,p))
С помощью этого кода, я заперт в к моя программа только способна оценить проблему формы x*b^p
.
Как люди пишут код, чтобы динамически обрабатывать математические выражения любой формы?
Это очень широкий вопрос - вероятно, слишком широкий и не по теме. Я редактировал ваши теги - «динамическое программирование» - это нечто очень специфическое, что вы здесь не имеете в виду. Попробуйте googling «символические математические библиотеки». (Не ваш downvoter, btw. = /) – BadZen
Написав парсер выражений. Люди пишут код так, как они пишут какой-либо другой код - с помощью текстового редактора и клавиатуры. –
Я понимаю, что он довольно широкий, более, чем любой другой вопрос, который я когда-либо задавал. Я даже не был уверен, какие метки подходят, что-то вроде выстрела в темноте. Спасибо. –