actionscript-3 - 如何计算每个呈指数增长的数字的总和?
问题描述
我的数学很糟糕(对不起!)我无法计算出适合我的游戏的简单方程式。
在游戏中,我有一个可以无限次购买的物品的价格——每次购买,价格都会上涨。
假设购买该商品的价格为 5 美元。在这里,我会买10次:5+20+45+80+125+180+245+320+405+500 = $1925 买10次的总成本。
我接下来要完成的是提供 Buy x10、Buy 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 美元的值。
另外 - 任何人都知道这种类型的方程在数学中被称为什么?也许是指数级数的总和?谢谢你。
解决方案
看起来像算术级数。
价格上涨 15、25、35、45 等,所以第 - 次n
买入的价格可以表示为递推关系:
通过替换解决这个问题:
好简单的表达。最后一步使用了此处的公式。例如n = 3
(第 3 次购买)价格5 * 3^2 = 45
与预期一致。
要得到总价,当然只需总结这些:
使用上面链接的同一页面中的另一个公式。
测试 5 次购买:
- 原来的:
5 + 20 + 45 + 80 + 125 = 275
- 公式:
5 / 6 * 5 * 6 * 11 = 275
更新——“伪代码”中的公式:
price = (5.0 / 6.0) * timesToBuy * (timesToBuy + 1) * (2 * timesToBuy + 1);
推荐阅读
- css - Blazor 中的 CSS 隔离
- python - /new 处的 ValueError 无法分配“'Home'”:“Listing.category”必须是“Category”实例
- python - 如何在 slurm 提交中按顺序运行 python 脚本?
- python - API调用不断给出keyerror?不和谐蟒蛇
- tortoisegit - TortoiseGit:上下文菜单不显示 git 同步选项
- json - 从 parseJSON 逻辑应用中检索错误响应
- spring-data-jdbc - 使用用户定义的主键值保存实体
- google-play - 我的 Google Adsense 帐户已经过验证,那么在购买 Play Console 开发者帐户后我还需要验证我的 ID 吗?
- jsoup - 使用 JSoup 查找所有内部超链接
- libgdx - LibGDX:html 中的文件句柄