数学程序如何接受任何形式的方程式?

How can math programs accept equations of any form?

例如,我可以输入 Google 或 WolframAlpha 6+6,或 2+237,这可以通过询问用户 a 和 [=15] 来编程=],然后计算 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 形式的问题。

人们如何编写代码来动态处理任何形式的数学表达式?

这可能不是 'appropriate' 对于这个场地的问题。但我认为问是有道理的。冒着我的答案与问题一起被否决的风险,我将提供一个简短的答案。

合法的数学表达式,从简单到复杂,都遵守语法规则。虽然一个合法的数学表达式可能看起来难以理解,但从语法上讲,它远没有理解人类话语的小部分所需的语法那么复杂。

不过,网络上提供的产品中内置了 'understanding' 级别。 Google 和 WolframAlpha 肯定是 'high-end'。他们试图尽可能接近定义能够代表人类话语的语法,至少实际上是这样。接近低端的是 Sympy 等产品,它们接受更严格定义的输入。

一旦软件确定输入的哪一部分是名词,什么是动词,可以这么说,它就会继续执行请求的操作。

要了解更多,您可能需要学习形式语言、人工智能、编程和我无法想象的领域。