如何计算增加变量的数量

时间:2013-05-02 12:33:36

标签: javascript

如何计算缺失的数字,以便当我将其添加到某个变量时,结果将等于或大于另一个变量。

  • 发起人:10
  • Detractor:2
  • 总计:12
  • 平均值:66.67
  • 目标:75
  • 你需要???促销者到达目标。

如果平均值低于目标,我想找到我需要的促销员数量。如何计算缺失的数字,以便在将其添加到促销方时,平均值的结果等于或大于目标。

谢谢!

function missingNum() {

var xPromoter = '';
var x = 10;
var y = 2;
var target = 75;
var z = x + y;
var v = ((x - y) / z) * 100;

    average = Math.round(v * 100) / 100;

        if (average<target) //how to increment x so that average => target

            document.write("Promoter:" + "\n" + x + "<br>");

            document.write("Detractor:" + "\n" + y + "<br>" ); 

            document.write("Total:" + "\n" + z + "<br>" );

            document.write("Average:" + "\n" + average + "<br>" );

            document.write("Target:" + "\n" + target + "<br>" );

            document.write("You need " + "\n" + xPromoter + "Promoters to reach your Target." );

}

3 个答案:

答案 0 :(得分:1)

忘记循环并做一些数学!做一些代数,给定目标和当前数量的批评者和推动者所需的推动者的公式是:

promotersNeeded = (detractors * (target + 100) / (100 - target)) - promoters

所以在你的例子中,

promotersNeeded = 2 * (75 + 100) / (100 - 75) - 10

出现在4。

答案 1 :(得分:1)

这是一个简单的代数问题。

平均=((促销员 - 批评者)/总计)* 100

fp成为您正在寻找的最终推广人数 让d成为目前的批评者数量 让t成为您的目标平均值

  1. 使用这些变量找到目标的公式如下:
    ((fp-d)/(fp + d))* 100 = t
  2. 除以100
    (fp -d)/(fp + d)= t / 100
  3. 将两边乘以(fp + d) fp - d =(t / 100)*(fp + d)
  4. 分配t / 100
    fp - d =(t / 100)* fp +(t / 100)* d
  5. 将d添加到两侧
    fp =(t / 100)* fp +(t / 100)* d + d
  6. 从两侧减去(t / 100)* x fp - (t / 100)* fp =(t / 100)* d + d
  7. 简化左手侧
    (1 - t / 100)* fp =(t / 100)* d + d
  8. 你想在左手边只有fp,所以将两边除以(1 - t / 100)
    fp =((t / 100)* d + d)/(1-t / 100)
    这是您将用于查找所需促销员总数的公式
  9. 现在只需输入td的数字,然后求解x
    fp = ((75 / 100) * 2 + 2) / (1 - 75 / 100)

    写出这一切,以便您可以看到最终结果:
    fp = (.75 * 2 + 2) / (1 - .75)
    fp = (1.5 + 2) / .25
    fp = 3.5 / .25
    fp = 14

    使用程序中的变量

    var fp = ((target / 100) * y + y) / (1 - target / 100);
    xPromoter = fp - x;
    

答案 2 :(得分:0)

你总是可以做一个简单的函数..但计算可能会更好..

function calculateNeededPromoters (promo, detrac) {
    var percentage = 0.00;
    var currentPromo = promo;
    while (percentage < 75) {
        currentPromo++;

        var total = currentPromo + detrac;
        var v = ((currentPromo - detrac) / total) * 100;
        percentage = Math.round(v * 100) / 100;
    }
    return currentPromo;
}