2016-08-01 93 views
-3

假设我们有一个未知公式的函数,在这个函数的输入和结果很少的情况下,我们如何得到函数的公式。Python如何得到函数公式给定它的输入和结果

例如我们在格式输入x和y和结果R(X,Y,R)

[ (2,4,8) , (3,6,18) ] 

和所需的函数可以是

f(x,y) = x * y 
+0

尝试使用一些遗传算法,演化语法搜索所需的公式;) – Netwave

+0

如果有无限多的令人满意的公式,该怎么办? – DeepSpace

+3

如果你解决这个问题,我认为1亿人会感兴趣。 –

回答

0

当你发布问题,这个问题太普通了。如果您想查找任何公式将给定输入映射到给定结果,则可能的公式太多。为了理解这一点,您需要以某种方式限制要考虑的功能集。例如,你可以说,你只是在多项式的解决方案感兴趣,即其中

r = sum a_ij * x^i * y^j for i from 0 to n and j from 0 to n - i 

那么你有一个方程组,与a_ij作为参数来解决。 n度越高,您必须找到的参数越多,因此您需要知道的输入输出组合越多。这种变化使用有理函数(所以你除以另一个多项式),或允许一些三角函数,或类似的东西。

如果你的设置非常简单,你只需要线性方程,即r = a*x + b*y + c。正如你所看到的,即使有三个参数a,b,c,所以你不能唯一找到他们所有三个只是给你在你的问题提供的两个输入。即使如此,结果也不会是你所瞄准的r = x*y,因为这在技术上是2度。

如果你想指出r = x*y是一个特别简单的公式,并且你想寻找简单的公式,那么一种方法会按照日益复杂的顺序列举公式。但是如果你这样做没有参数(因为丑陋的参数会使一个简单的公式如a*x + b*y + c看起来很复杂),那么很难将这个枚举变成你想要的那个枚举,所以你真的必须枚举所有可能的公式,这将成为不可行很快

相关问题