0

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

  • 发起人:10
  • 批评者: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." );

}
4

3 回答 3

1

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

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

所以在你的例子中,

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

结果是4。

于 2013-05-02T13:00:03.533 回答
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)
    这就是您将要使用的公式用于查找您需要的发起人总数

现在只需插入数字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;
于 2013-05-02T13:00:29.470 回答
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;
}
于 2013-05-02T12:46:49.920 回答