内部收益率(二分法)
在金融中,我们有时会用内部收益率IRR来评价项目的投资财务效益,它等于使得投资净现值NPV等于0的贴现率。换句话说,给定项目的期数T、初始现金流CF0和项目各期的现金流CF1, CF2, …,CFT,IRR是下面方程的解:
为了简单起见,本题假定:除了项目启动时有一笔投入(即初始现金流CF0 < 0)之外,其余各期均能赚钱(即对于所有i=1,2,…,T,CFi > 0)。根据定义,IRR可以是负数,但不能大于-1。
Input
输入文件最多包含25组测试数据,每个数据占两行,第一行包含一个正整数T(1<=T<=10),表示项目的期数。第二行包含T+1个整数:CF0, CF1, CF2, …, CFT,其中CF0 < 0, 0 < CFi < 10000 (i=1,2,…,T)。T=0表示输入结束,你的程序不应当处理这一行。
Output
对于每组数据,输出仅一行,即项目的IRR,四舍五入保留小数点后两位。如果IRR不存在,输出”No”,如果有多个不同IRR满足条件,输出”Too many”(均不含引号)
Sample Input
1
-1 2
2
-8 6 9
0
Sample Output
1.00
0.50
分析:给了一个IRR为未知数的方程,求方程的解,这是一个一元高次方程,它的解一定存在,而题目中有一处错误,, 应该是错误吧, IRR的范围应该是不小于-1吧? 看样例就不是大于。。
然后这里IRR的具体范围不知道,就设定一个最小值l=-1.0,最大值r尽可能的大一些,我用的1e8,小了的话可能WA吧。 然后二分查找
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#include<algorithm>
using namespace std;
#define mem(a,n) memset(a,n,sizeof(a))
int r1,r2,r3,c1,c2,c3;
int dxy[8][2]= {-1,0,0,-1,1,0,0,1,-1,-1,-1,1,1,-1,1,1};
const int N=15;
const int eps=1e-6;
int main()
{int T;double a[N];while(~scanf("%d",&T)&&T){for(int i=0; i<=T; i++)scanf("%lf",&a[i]);double l=-1.0,r=1e8;double mid,sum=0,t;for(int i=0;i<50;i++){sum=0,t=1.0;mid=(l+r)/2;for(int i=1; i<=T; i++){t/=(1.0+mid);sum+=t*a[i];}if(sum+a[0]>0)l=mid;else r=mid;}printf("%.2lf\n",mid);}return 0;
}
内部收益率(二分法)相关推荐
- 左神讲算法——二分法及其拓展
目录 1. 经典二分例题 2. 拓展例题一:寻找大于等于某数最左侧位置 3. 拓展例题二:局部最小值问题 参考链接:2021最新左神数据结构算法全家桶 1. 经典二分例题 题目一:在一个有序数组中,找 ...
- Java 二分法查找
二分法查找的步骤 1 查找前元素先排序 2 确定中间区域的位置mid=(low+high)/2 3 比较 如果等于要查找的值则直接返回,如果大于查找的值,那么则去小的部分查找每次则会减1 如果要查找的 ...
- C语言---二分法搜索
//一维数组二分法 #include <stdio.h> int search(int number,int dict[],int length); //二分法搜索函数声明,返回下标 in ...
- 二分法:search insert position 插入位置
问题描述: 给定一个排序数组nums(无重复元素)与目标值target,如果target在nums里 出现,则返回target所在下标,如果target在nums里未出现,则返回target应该 插入 ...
- python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...
查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...
- 7-5 二分法求多项式单根 (20分)
二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f( r )=0. 二分法的步骤为: 检查区间长度,如 ...
- 【二级java】 二分法查找
例题1 :对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______. 解析: 如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功 查找次数为1 如果线形表中不存在该数 ...
- python二分法求解_Python使用二分法求平方根的简单示例
这篇文章主要为大家详细介绍了Python使用二分法求平方根的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 使 ...
- 1048 Find Coins(二分法解法)
非常基础的二分法-寻找序列中是否存在某一条件的元素 的应用 AC代码 #include<cstdio> #include<iostream> #include<set&g ...
- 二分法在算法题中的4种常见应用(cont.)
目录 1.查找单调序列中是否存在满足某条件的元素 2.寻找序列中第一个(最后一个)满足某条件的元素的位置 3.给定一个定义在[L,R]上的单调函数f(x),求方程f(x)=0的根 4.快速幂的递归和迭 ...
最新文章
- Android 解决RecyclerView删除Item导致位置错乱的问题
- OVM虚拟化平台安装成功后初始化配置方法!
- 将Auth0 OIDC(OAUTH 2)与授权(组和角色)集成
- Win32-Application的窗口和对话框
- 路印zkRollup AMM将在月底启动流动性挖矿
- c++中父类子类对象指针相互转换,成员函数调用方式
- 用AngularJS开发下一代Web应用pdf
- pandas读取xlsx文件
- 回溯法(国际象棋八皇后放入棋盘)
- 奔跑中的交银施罗德基金,崛起的新生代基金经理
- WinRAR v5.71 简体中文正式版
- 声纹识别(一)——简介
- RAW图像详解及使用Python读取raw格式图像并显示
- 如何添加Google统计在自己的网站
- 当我们谈深度学习时,我们用它落地了什么?
- 课程设计 齿轮油泵泵体的机械加工工艺规程及工艺夹具装备设计
- 生成拼音语料及拼音识别转换成中文
- win10安装wifi网卡驱动显示“这个 INF 中的服务安装段落无效“
- Java基础面试题(2022版)
- 暗影精灵5 设置电池充电阈值