問題 1076 內部收益率 Right 借鑑

2021-10-02 16:34:18 字數 1617 閱讀 4064

時間限制: 1sec 記憶體限制: 128mb

在金融中,我們有時會用內部收益率irr來評價專案的投資財務效益,它等於使得投資淨現值npv等於0的貼現率。換句話說,給定專案的期數t、初始現金流cf0和專案各期的現金流cf1, cf2, …,cft,irr是下面方程的解:

為了簡單起見,本題假定:除了專案啟動時有一筆投入(即初始現金流cf0 < 0)之外,其餘各期均能賺錢(即對於所有i=1,2,…,t,cfi > 0)。根據定義,irr可以是負數,但不能大於-1。

輸入

輸入檔案最多包含25組測試資料,每個資料佔兩行,第一行包含乙個正整數t(1<=t<=10),表示專案的期數。第二行包含t+1個整數:cf0, cf1, cf2, …, cft,其中cf0 < 0, 0 < cfi < 10000 (i=1,2,…,t)。t=0表示輸入結束,你的程式不應當處理這一行。

輸出

對於每組資料,輸出僅一行,即專案的irr,四捨五入保留小數點後兩位。如果irr不存在,輸出"no",如果有多個不同irr滿足條件,輸出"too many"(均不含引號)

樣例輸入

1-1 2

2-8 6 9

0樣例輸出

1.00

0.50

先附上正確**

#include

#include

intmain()

if(npv>

0) low=mid;

else high=mid;

} i++;}

for(j=

0;j)printf

("%.2lf\n"

, irr[j]);

}

題目給的函式中,irr 是變數,其取值範圍為:(−1

,+∞)

(-1,+\infty)

(−1,+∞

)在這個範圍中,irr→無窮,npv小於零,irr

→−1+

irr\rightarrow-1^+

irr→−1

+時,npv是無窮大。所以在(0,

+∞)(0,+\infty)

(0,+∞)

中必有一根

貼**

#include

#include

intmain()

else

if(npv>

0) low=mid;

else high=mid;

} i++;}

for(j=

0;j)printf

("%.2lf\n"

, irr[j]);

}

這部分**與上面的**最不一樣的地方是,變數過於複雜,導致思路不清晰。

其次有下面幾個注意點:

1、極大值和極小值的大小

2、變數範圍的把控

3、元素初始化的位置的問題(主要問題)

C C 內部收益率

在金融中,我們有時會用內部收益率irr來評價專案的投資財務效益,它等於使得投資淨現值npv等於0的貼現率。換句話說,給定專案的期數t 初始現金流cf0和專案各期的現金流cf1,cf2,cft,irr是下面方程的解 為了簡單起見,本題假定 除了專案啟動時有一筆投入 即初始現金流cf0 0 之外,其餘各...

淨現值 折現率 內部收益率 投資利潤

npv 淨現值 net present value 投資專案投入使用後的淨現金流量,按資本成本或企業要求達到的報酬率折算為現值,減去初始投資以後的餘額,叫淨現值 net present value,npv 淨現值 未來報酬的總現值 初始投資 未來報酬的總現值 計算方法 1 計算每年的營業淨現金流量。...

計算復合收益和復合收益率

計算復合收益和復合收益率,還是要從最基本的公式開始推,這裡用年復合收益和年復合收益率來舉例說明,計算方面用 python 來實現 例子1 初始資金2元,年收益率為 20 5年後資金為多少?import math 方法1,最原始的計算方法,多,邏輯最清晰 capital 2rate 0.2 for i...