2012-09-17 2 views
0

내가 지금 가지고있는 코드가 Heres인데 의도 한대로 작동하지만 누적 합계가 작동하지 않습니다. 나는 절대적으로 어리석은 일을하고 있습니다.PHP로 인플레이션 계산기 만들기

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 %, 해당 연도의 인플레이션 임). 2 학년 누계는 1421입니다. 3 학년은 1421 + 721 (지난 해 총계) + 721의 3 %입니다.

내가 잘못하고있는 곳을 볼 수있을만큼 충분히 명확합니다. 감사!

+0

당신은'$ yearlycost' var을 시작한 다음 52 주를 곱해야할까요? 지금은 주간 비용처럼 보입니다 ....'밤의 수 * 야간 비용 ' – bretterer

+0

실제로 휴가 비용 계산기입니다. 따라서 7 일 밤은 사용자 옵션입니다. 그래서 나는 밤의 밤 *으로 설정합니다. 이 사용자는 연중 무휴로 7 박을 보냅니다. – Trell

+0

연간 비용은 인플레이션이 얼마나 높은가에 관계없이 항상 721이 아니라 700입니다. 제품 가격에 통합하려는 경우 야간 비용에 백분율을 추가해야하므로 이미 존중 된 인플레이션 비용이 곱해집니다. – feeela

답변

1

코드가 잘못 된 부분을 이해하는 것이 어렵지만 내 직감은 루프 본문의 마지막 줄에 곱셈이 있어야한다는 것입니다.

기본적으로 기간 0의 기본 비용이 있습니다. 그러면 X 년 후에 인플레이션으로 주어진 누적 비용을 계산할 수 있습니다.

예 :

$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"; 
: 그 선정 마지막 표현식 (. http://mathworld.wolfram.com/ExponentialSumFormulas.html를이 식에 따른 보유 4 여기)

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

로 단순화 될 수

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

(의사) 인

출력 :

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