我试着写两个反函数。如果我们传递给函数A值10,它返回例如4,86,如果我们把这个数字传递给函数B,它应该返回原始的10。
我在函数A中用到了这样的东西:
输出= sqrt(inputForA / range) * inputForA;
因此,是否有可能在函数B中反求它,只知道输出和范围,就可以计算inputForA。
发布于 2013-01-23 19:37:21
您只需要考虑这个等式,就可以挑选出inputForA。以下是代数步骤:
输出= sqrt(inputForA / range) * inputForA
输出/ inputForA = sqrt(inputForA / range)
sq(输出)/ sq( inputForA ) =inputForA/范围
范围*平方(输出)/平方( inputForA )=inputForA
范围*平方(输出)=立方体(InputForA)
所以范围的立方体根乘以输出平方应该给你原始的输入。不过,我在这里不能很好地表现出来.
发布于 2013-01-23 19:25:04
你只需要使用基本的数学。output = pow(inputForA, 3. / 2.) * pow(range, 1. / 2.) so inputForA = pow(output * pow(range, 1. / 2.), 2. / 3.).只有当inputForA和scale有相同的符号时,这才有效,但是第一个函数只在这个间隔上定义,所以这是可以的(因为sqrt只为正值定义)。
在Python中:
scale = 7.
def f(x):
return math.sqrt(x / scale) * x
def g(y):
return math.pow(y * math.pow(scale, 1. / 2), 2. / 3)
print g(f(10))
10.0
print f(g(10))
10.0您也可以使用Wolframα获得答案:

https://stackoverflow.com/questions/14487585
复制相似问题