如何计算每个呈指数增长的数字之和?
How to calculate the sum of numbers which are each increased exponentially?
我的数学很糟糕(抱歉!)我无法计算出适合我的游戏的简单方程式。
在游戏中,我有一个物品的价格,你可以无限次购买 - 每次购买,价格都会上涨。
假设该商品的购买成本为 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;
我只是不确定在 "timesAlreadyPurchased = 0".
时使用什么方程式可以得到 "timesToBuy = 10" 到 return 1925 美元的价值
另外 - 谁知道这种方程式在数学中叫什么?也许是指数级数的总和?谢谢。
看起来像等差数列。
价格上涨 15、25、35、45 等,因此第 n
次买入的价格可以表示为递归关系:
通过替换解决这个问题:
简洁的表达方式。最后一步使用了 here 中的公式。例如n = 3
(第 3 次购买)的价格符合预期 5 * 3^2 = 45
。
要得到总价,当然就是把这些加起来:
使用上面链接的同一页面中的另一个公式。
测试 5 次购买:
- 原文:
5 + 20 + 45 + 80 + 125 = 275
- 公式:
5 / 6 * 5 * 6 * 11 = 275
更新 – "pseudocode" 中的公式:
price = (5.0 / 6.0) * timesToBuy * (timesToBuy + 1) * (2 * timesToBuy + 1);
我的数学很糟糕(抱歉!)我无法计算出适合我的游戏的简单方程式。
在游戏中,我有一个物品的价格,你可以无限次购买 - 每次购买,价格都会上涨。
假设该商品的购买成本为 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;
我只是不确定在 "timesAlreadyPurchased = 0".
时使用什么方程式可以得到 "timesToBuy = 10" 到 return 1925 美元的价值另外 - 谁知道这种方程式在数学中叫什么?也许是指数级数的总和?谢谢。
看起来像等差数列。
价格上涨 15、25、35、45 等,因此第 n
次买入的价格可以表示为递归关系:
通过替换解决这个问题:
简洁的表达方式。最后一步使用了 here 中的公式。例如n = 3
(第 3 次购买)的价格符合预期 5 * 3^2 = 45
。
要得到总价,当然就是把这些加起来:
使用上面链接的同一页面中的另一个公式。
测试 5 次购买:
- 原文:
5 + 20 + 45 + 80 + 125 = 275
- 公式:
5 / 6 * 5 * 6 * 11 = 275
更新 – "pseudocode" 中的公式:
price = (5.0 / 6.0) * timesToBuy * (timesToBuy + 1) * (2 * timesToBuy + 1);