代码之家  ›  专栏  ›  技术社区  ›  orolo

简单的javascript数学问题

  •  0
  • orolo  · 技术社区  · 14 年前

    如何用javascript来表达?

    3小时 全部超过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 回复  |  直到 14 年前
        1
  •  5
  •   PleaseStand    14 年前

    平方数 可以表示为 Math.pow(x, 2) . 另外,“超过2倍的L”意味着 / (2 * L)

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

    你也错过了 var 前关键字 total

        2
  •  4
  •   xscott    14 年前

    霍纳方法是表示多项式的一种很好的方法:

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

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

        3
  •  1
  •   Matt Ball    14 年前

    我唯一看错的就是 var 在total之前,因此使它成为全球性的。将代码更改为:

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

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

    如果你想变得更花哨,那就把普通的 3*H 也:

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

    但我不知道你还在找什么。

        4
  •  1
  •   Andrew Cooper    14 年前

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

    function calculator (height, len) {
        var H = height, L = len;
        var total = (9*H*H + 3*H)/(2*L);
        return total;
    }
    
        5
  •  1
  •   jon_darkstar    14 年前

    +安德鲁·库珀

    (9*H)*(9*H)=81*H^2,我不相信你的意思

    9*H*H=9H^2是这个术语的意思

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

    等于1+2+。。+3H全部除以L(如果H是整数)
    最后一部分可能对你没什么帮助,但我喜欢identity=P

        6
  •  0
  •   David    14 年前

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

    别忘了用out做一个变量 var 预先准备将使其成为全局:)