简单的javascript数学问题

时间:2010-10-27 01:52:57

标签: javascript math

我如何用javascript表达这个?

9H加平方 3H 满2岁 次L

我正在做类似的事情:

function calculator (height, len) {
var H = height, L = len;
total = (((9 * H)*(9 * H)) + 3*H)/2)*L;
return total;
}

calculator(15, 7);

我不在乎它是否简洁,但我不确定在javascript中处理数学的最佳方法。

谢谢。

6 个答案:

答案 0 :(得分:5)

将数字 x 平方可以表示为Math.pow(x, 2)。此外,“超过2倍L”将意味着/ (2 * L)在最后,而不是你拥有它的方式,如果你的确意味着:

  whatever
-----------
    2L

您在var之前也缺少total关键字,这会将其声明为本地变量。

答案 1 :(得分:4)

霍纳的方法是表达多项式的好方法:

function calc (height, length) {
     return ((9*height + 3)*height)/(2*length);
}

http://en.wikipedia.org/wiki/Horner_scheme

答案 2 :(得分:1)

看起来对我很好。你有什么问题?

我唯一看错的是在总计之前缺少var,从而使其成为全球性的。将您的代码更改为:

function calculator (height, len) {
    var H = height,
        L = len, // <-- subtle change: replace ; with ,
        total = (((9 * H)*(9 * H)) + 3*H)/2)*L;
    return total;
}

当然,你也可以分解9:

total = ((81*H*H + 3*H)/2)*L;

如果你想变得更加漂亮,那么也要考虑常见的3*H

total = (3*H*(27*H + 1)/2)*L;

但我不确定你还在寻找什么。

答案 3 :(得分:1)

在“9H平方”中,只有H是平方的,所以

function calculator (height, len) {
    var H = height, L = len;
    var total = (9*H*H + 3*H)/(2*L);
    return total;
}

答案 4 :(得分:1)

+1来自Andrew Cooper

(9 * H)*(9 * H)= 81 * H ^ 2,我不相信你打算

9 * H * H = 9H ^ 2是你想要的那个术语

(9 * H * H + 3 * H)/(2 * L)
或因素
(3 * H)(3 * H + 1)/(2 * L)

等于1 + 2 + .. + 3H之和除以L(如果H是整数)
最后一部分可能对你没有任何帮助,但我喜欢identity = P

答案 5 :(得分:0)

你可能会这样......

function calculator (height, len) {
  var h = height, l = len;
  var total = ( 9 * Math.pow(h, 2) + 3*h ) / (2*l);
  return total;
}

不要忘记创建一个带有var前置的变量将使其全局化:)