这是我目前拥有的代码,所有代码均按预期工作,但是,累计总数却无法正常工作,而且我很肯定自己在做一些绝对愚蠢的事情。

assume period = 20
assume inflation = 3
assume nightlycost = 100
assume nights = 7

$yearlycost = $nightlycost*$nights;
while ($period > 0) {
    $period = $period-1;
    $yearlyincrease = ($inflation / 100) * $yearlycost;
    $nightlyincrease = ($inflation / 100) * $nightlycost;
    $nightlycost = $nightlycost + $nightlyincrease;
    $yearlycost = ($yearlycost + $yearlyincrease) + $yearlycost;
}

Result:
Nightly Hotel Rate in 20 years: $180.61 - <?php echo round($nightlycost, 2); ?> correct

Weekly Hotel Rate in 20 years: $1264.27 - <?php echo round($nightlycost, 2) * 7; ?> correct

Total cost to you over 20 years: $988595884.74 - <?php echo round($yearlycost, 2); ?> incorrect

除年度累计成本外,所有内容均正确且按预期输出。 它应该取先前的年度成本,并加上那几年的成本+通货膨胀。

例如:第一年为700,因此第二年应为700 + 700 + 21(21是该年的通货膨胀率的3%)。 因此,第二年的累计总数为:1421。第三年将为1421 + 721(上一年的总数)+ 721的3%。

希望这很清楚,让您了解我要去哪里。 谢谢!

#1楼 票数:1 已采纳

我发现很难理解您的代码在哪里出错,但是我的直觉是循环体的最后一行应该有一个乘法。

基本上,您具有期间0的基本成本。然后,您要计算X年后的给定通货膨胀率的累积成本。 该费用为(伪代码)

base = nightlycost + nights
infl = 1.03
cumulative = base + base*infl + base*infl^2 + base*infl^3 + ... + base*infl^periods

最后一个表达式可以简化为

cumulative = base*((1-infl^periods)/(1-infl))

(根据此处的等式4可以确定: http : //mathworld.wolfram.com/ExponentialSumFormulas.html

例:

$base = 100*7;
$infl = 1.03; // 3% of inflation/year

$periods = 2;
$cumulative = $base * (1-pow($infl, $periods))/(1-$infl);
print "Cumulative cost after $periods is $cumulative\n";

// Let's try with three periods.
$periods = 3;
$cumulative = $base * (1-pow($infl, $periods))/(1-$infl);
print "Cumulative cost after $periods is $cumulative\n";

输出:

Cumulative cost after 2 is 1421
Cumulative cost after 3 is 2163.63

  ask by Trell translate from so

未解决问题?本站智能推荐:

1回复

我需要PHP和SQL中的帐户报表表

拜托,我需要专家的帮助。 我是新来的。 我想显示一个表格,该表格将显示Balance = Amount - Cost ,如下所示,但该表格应根据扣除的成本减少金额。 表一是我从代码中得到的,第一行没问题,但将表 2 视为预期的表。 第一行没问题,但随后应将金额设置为 Balance 等。 预期表 我
2回复

php从数组累计添加数字到日期

我有带数字的数组,没有序列化键。 和约会。 如何添加具有累积数组值的日期? 我将函数与 foreach{} 一起使用,并像这样添加日期:$nextDate[] = date("Y-m-d", strtotime('+'.$g.' day', strtotime($aDate))); 数据是:$dat
3回复

如何使用PHP中的累积小时数

我将数据库中保存的总工作时间保存为如下文本:hhhhh:mm,例如一辆汽车在工作时间为789:07(789小时7分钟)。 可以添加或减少工作时间,我会按小时和分钟分割字符串,并按如下方式进行操作: substract方法是: 这些方法一直有效,直到我不得不减去两个小时: 50:00
1回复

带有运行总计的C#形式的简单计算器

我正在在线学习通用学位,我们的任务是使用 .Forms 开发一个简单的计算器我能够非常简单地创建 GUI,但在编写跟踪运行总数的变量的开发过程中遇到了困难,并允许用户执行多个操作。 目前,我的代码允许两个输入和 1 个操作。 总计后,如果用户选择另一个数字进行运算,代码只需删除第一个输入并将其与第二
1回复

如何对不依赖电平比较器的累计和进行计算?

我们有一个基于Stream2PositionPostProcessor(来自ActivePivot)的累积度量。 我们使用它来动态地汇总沿时间维度的缓存流。 我们想按时间顺序进行总和,但以相反的顺序显示结果。 为了以相反的顺序显示结果,我们更改了电平比较器。 这是我们得到的数据透视表
1回复

计算滚动回报

我有一个包含 3 列的数据框。 我想要做的是计算每个月期间(或换句话说,每一行)(如果可用)在选定月份滚动期间的回报乘积。 这是数据的基本结构。 它应该以一个数据框结束,其中添加了一个新列,其中包含该时间范围内选定的期间累积回报。 例如,我在下面显示了四个月的回报。 根据数据计算 03/30/201
2回复

Pandas高效的VWAP计算

我有下面的代码,使用它我可以通过三行 Pandas 代码计算成交量加权平均价格。 我试图找到一种方法来编码这个而不使用cumsum()作为练习。 我正在尝试找到一种解决方案,可以一次性提供VWAP列。 我已经尝试了下面的行,使用.apply() 。 逻辑就在那里,但问题是我无法将值存储在第 n 行中
1回复

如何计算累计金额?[重复]

这个问题已经在这里有了答案: 计算每一行的累积总和 5个答案 R 1答案 中累加和的向量 我有包含biweek和Total列的数据,我想以biweek基础获取累积总和。 我的数据像: 我想得到像这样的输出: 那么有没有可能实现这一目标的方法呢?