问题:
在金融中,我们有时会用内部收益率IRR来评价项目的投资财务效益,它等于使得投资净现值NPV等于0的贴现率。换句话说,给定项目的期数T、初始现金流CF0和项目各期的现金流CF1, CF2, …,CFT,IRR是下面方程的解:

为了简单起见,本题假定:除了项目启动时有一笔投入(即初始现金流CF0 < 0)之外,其余各期均能赚钱(即对于所有i=1,2,…,T,CFi > 0)。根据定义,IRR可以是负数,但不能大于-1。
分析:
可以用二分法不断二分最后不断逼近正确答案,因为CF0是负的,所以把后面几项的和与第一项比较就行,因为边界不好控制,所以直接二分50次;
代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int N = + ;
const int eps = 1e-;
double a[N]; double solve(int n){
double l,r,mid,f,ans;
l = -1.0,r = ;
for(int t = ;t<=;t++){
mid = (r+l)/;
f = 1.0,ans = ;
for(int i=;i<=n;i++){
f=f/(+mid);
ans += a[i]*f;
}
if(ans > (-a[])) l = mid;
else r = mid;
}
return mid;
} int main(){
int n;
while(cin >> n && n){
for(int i=;i<=n;i++)
cin >> a[i];
printf("%.2lf\n",solve(n));
}
return ;
}

最新文章

  1. ListView 的优化
  2. plupload 如何控制最小宽度和文件类型及跨域
  3. Application Engine
  4. javascript和jquey的自定义事件小结
  5. Gson实现自定义解析json格式
  6. 初步了解yield_python
  7. mysql存储过程笔记
  8. js获取当前的时间(包含星期)
  9. DirectUI中模态对话框和菜单的原理(自己控制整个Windows消息循环。或者,用菜单模拟窗体打开时用SetCapture取得控制权,一旦窗体收到WM_CAPTURECHANGED消息就把窗体退出)
  10. The Swift Programming Language 中国版
  11. IOS开发中各种型号的分辨率及软件图标的制作
  12. 【spring源码分析】IOC容器初始化(九)
  13. Py之any函数【转载】
  14. pip离线安装python包
  15. SpringBoot返回json格式到浏览器上,出现乱码问题
  16. bower 安装后 jade 引用404问题
  17. Python游戏《外星人入侵》来了~
  18. VS2010 项目属性的默认包含路径设置方法
  19. [leetcode]Binary Tree Preorder Traversal @ Python
  20. AOP(Aspect Oriented Programming),即面向切面编程

热门文章

  1. Memcached在Asp.net下的应用
  2. C# SqlSugarClient分析一点
  3. Selenium 控制浏览器
  4. windows下开启远程连接Mysql
  5. springboot切换配置
  6. ACCESS数据库注入
  7. 常用的vi快捷方式
  8. 关于MySQL去除查询结果重复值
  9. js fuction函数内return一个内部函数详解
  10. QbztDay1游记