底数和结果已知,比如x^y=z,已知x=2,z=8。求x。 通过Javascript应该怎么实现?sqrt返回的是底数x,pow返回的是结果z。不知哪个方法能返回y? 多谢高手相助!
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
求y其实就是求x为底z的对数,javascrip中没有直接计算以任意数为底某数的对数的函数,但Math对象中有log(x) 方法,求以10为底x的对数,我们可以间接求,公式:y=log(z)/log(x);
下面是代码,你可以验证:
<html>
<head></head>
<body>
<script type="text/javascript">
var x=2;
var z=8;
var y=Math.log(z)/Math.log(x);
alert (y);
</script>
</body>
</html>
呼唤远方
TA贡献1856条经验 获得超11个赞
/*
* 求y在数学中是求对数,数学公式是y=log(x)z
* 但是js中没有log函数,只有log(e)的运算
* 根据数学公式 y = log(x)z = (log(n)z)/(log(n)x)
* 所以可以 y = log(x)z = (log(e)z)/(log(e)x)
* 转化为js var y = Math.log(z)/Math.log(x);
*/
function mathLog(x, z){
var logx = Math.log(x);
var logz = Math.log(z);
return logz/logx;
}
添加回答
举报
0/150
提交
取消