在金融中,我们有时会用内部收益率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. 左神讲算法——二分法及其拓展

    目录 1. 经典二分例题 2. 拓展例题一:寻找大于等于某数最左侧位置 3. 拓展例题二:局部最小值问题 参考链接:2021最新左神数据结构算法全家桶 1. 经典二分例题 题目一:在一个有序数组中,找 ...

  2. Java 二分法查找

    二分法查找的步骤 1 查找前元素先排序 2 确定中间区域的位置mid=(low+high)/2 3 比较 如果等于要查找的值则直接返回,如果大于查找的值,那么则去小的部分查找每次则会减1 如果要查找的 ...

  3. C语言---二分法搜索

    //一维数组二分法 #include <stdio.h> int search(int number,int dict[],int length); //二分法搜索函数声明,返回下标 in ...

  4. 二分法:search insert position 插入位置

    问题描述: 给定一个排序数组nums(无重复元素)与目标值target,如果target在nums里 出现,则返回target所在下标,如果target在nums里未出现,则返回target应该 插入 ...

  5. python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...

    查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...

  6. 7-5 二分法求多项式单根 (20分)

    二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f( r )=0. 二分法的步骤为: 检查区间长度,如 ...

  7. 【二级java】 二分法查找

    例题1 :对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______. 解析: 如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功 查找次数为1 如果线形表中不存在该数 ...

  8. python二分法求解_Python使用二分法求平方根的简单示例

    这篇文章主要为大家详细介绍了Python使用二分法求平方根的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 使 ...

  9. 1048 Find Coins(二分法解法)

    非常基础的二分法-寻找序列中是否存在某一条件的元素 的应用 AC代码 #include<cstdio> #include<iostream> #include<set&g ...

  10. 二分法在算法题中的4种常见应用(cont.)

    目录 1.查找单调序列中是否存在满足某条件的元素 2.寻找序列中第一个(最后一个)满足某条件的元素的位置 3.给定一个定义在[L,R]上的单调函数f(x),求方程f(x)=0的根 4.快速幂的递归和迭 ...

最新文章

  1. Android 解决RecyclerView删除Item导致位置错乱的问题
  2. OVM虚拟化平台安装成功后初始化配置方法!
  3. 将Auth0 OIDC(OAUTH 2)与授权(组和角色)集成
  4. Win32-Application的窗口和对话框
  5. 路印zkRollup AMM将在月底启动流动性挖矿
  6. c++中父类子类对象指针相互转换,成员函数调用方式
  7. 用AngularJS开发下一代Web应用pdf
  8. pandas读取xlsx文件
  9. 回溯法(国际象棋八皇后放入棋盘)
  10. 奔跑中的交银施罗德基金,崛起的新生代基金经理
  11. WinRAR v5.71 简体中文正式版
  12. 声纹识别(一)——简介
  13. RAW图像详解及使用Python读取raw格式图像并显示
  14. 如何添加Google统计在自己的网站
  15. 当我们谈深度学习时,我们用它落地了什么?
  16. 课程设计 齿轮油泵泵体的机械加工工艺规程及工艺夹具装备设计
  17. 生成拼音语料及拼音识别转换成中文
  18. win10安装wifi网卡驱动显示“这个 INF 中的服务安装段落无效“
  19. Java基础面试题(2022版)
  20. 暗影精灵5 设置电池充电阈值

热门文章

  1. 历年数学界菲尔兹奖及其得主简介
  2. diamond源码解析
  3. C语言双人贪吃蛇游戏瘦身版本
  4. 通常网站当中的关键词密度如何控制呢
  5. 关于VLAN和VXLAN的理解
  6. 从阿里双十一看云计算
  7. grub4dos引导启动linux,Grub4Dos 手动引导指令
  8. 10.curry 方法
  9. 2022-2028全球粉尘检测仪行业调研及趋势分析报告
  10. 转 - DataGuard中如何配置LOG_ARCHIVE_DEST_n参数