如何计算每个指数增长的数字之和?

时间:2018-10-02 08:34:48

标签: actionscript-3 math actionscript

我的数学太糟糕了(对不起!)我无法弄清楚我的游戏应该是什么简单方程。

在游戏中,我为您可以无限次购买的商品定价-每次购买,价格都会上涨。

假设该商品的价格为5美元。在这里,我将购买10次: 5 + 20 + 45 + 80 + 125 + 180 + 245 + 320 + 405 + 500 = 1925美元的总费用可以购买10次。

接下来我要完成的工作是提供“购买x10”,“购买x20”等按钮,这些按钮可以算出一次购买10次的费用。

这是我当前的代码,将产生上述价格:

    public function CalcuatePrice(timesAlreadyPurchased:Number,timesToBuy:int=1):Number {
        var price:Number;
        var basePrice:Number = 5;
        var multiplier:Number;

        //Always need at least 1 (items actually start at purchased 0 times)
        timesAlreadyPurchased += 1;

        //Apply iterations
        if (timesToBuy!=1){
            multiplier = (timesToBuy * (timesToBuy + timesAlreadyPurchased)) / 2;
        } else {
            multiplier = timesAlreadyPurchased; 
        }

        price = basePrice * multiplier;

        return price;
    }

当前,这仅在timesToBuy为1时有效。问题在网上:

multiplier = (timesToBuy * (timesToBuy + baseMultiplier)) / 2;

我只是不确定使用什么等式来获取“ timesToBuy = 10”,当“ timesAlreadyPurchased = 0”时返回$ 1925的值。

此外-有人知道数学中这种类型的方程是什么吗?指数级数之和?谢谢。

1 个答案:

答案 0 :(得分:2)

看起来像算术级数。


价格上涨了15、25、35、45等,因此第n次购买的价格可以表示为递归关系:

enter image description here

通过替代解决:

enter image description here

简单的表达式。最后一步使用了here中的公式。例如对于n = 3(第3次购买),价格为5 * 3^2 = 45


要获得总价,当然只需将这些总和:

enter image description here

使用上面链接的同一页面中的另一个公式。

测试5次购买

  • 原文:5 + 20 + 45 + 80 + 125 = 275
  • 公式:5 / 6 * 5 * 6 * 11 = 275

更新–“伪代码”中的公式:

price = (5.0 / 6.0) * timesToBuy * (timesToBuy + 1) * (2 * timesToBuy + 1);