很抱歉,如果这个问题早已发布,我已经看过但没有发现任何东西。我不知道我要做什么的数学术语,这也许就是为什么我没有找到它的原因。
我希望得到75%的结果,我有一张表,例如1500行,我需要知道将这些行设置为什么值,以便所有这些行的乘积或乘方= 75。
通过反复试验,我知道POWER(0.99981,1500) = 0.75199
。
有没有可以输入75、1500和0.99981作为输出的函数?
我尝试使用LOG,但似乎无法正常工作,或者我使用的方式有误。
答案 0 :(得分:4)
直接的数学定义是将两个自然对数相除:
SELECT POWER(0.99981,1500),
LN(.751993891229747972713262500887354361902) / LN(0.99981)
FROM DUAL
您也可以使用LOG()
执行此操作。基数是第一个参数:
log(0.99981, .751993891229747972713262500887354361902)
编辑:
糟糕,要获得基础,您可以使用:
exp(ln(.751993891229747972713262500887354361902) / 1500)
答案 1 :(得分:3)
从数学上讲,数字的第n个根也是1 / n的幂的数字,例如sqrt(x) = power(x, 1/2)
所以您追求的是:
SELECT POWER(POWER(0.99981,1500), 1/1500) res
FROM dual;
RES
-------
0.99981
答案 2 :(得分:0)
您具有数学方程式:
x 1500 = 0.75
取任意一方的自然对数可得出:
1500 ln(x)= ln(0.75)
可以重新安排为:
ln(x)= ln(0.75)/ 1500
采用双方的指数函数可得出:
e ln(x) = x = e ln(0.75)/ 1500
您可以将其从数学方程式转换为Oracle的SQL,如下所示:
SELECT EXP( LN( 0.75 ) / 1500 ) FROM DUAL;
哪个输出:
| EXP(LN(0.75)/1500) | | ----------------------------------------: | | .9998082303418508590582823402912385708058 |
db <>提琴here