文档章节

分享一道类似于二分法的题

侯禹
 侯禹
发布于 2013/10/05 21:20
字数 423
阅读 29
收藏 0

 

内部收益率

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

为了简单起见,本题假定:除了项目启动时有一笔投入(即初始现金流CF0 < 0)之外,其余各期均能赚钱(即对于所有i=1,2,...,TCFi > 0。根据定义,IRR可以是负数,但不能大于-1

输入

输入文件最多包含25组测试数据,每个数据占两行,第一行包含一个正整数T1<=T<=10),表示项目的期数。第二行包含T+1个整数:CF0CF1CF2, ..., 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 <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
int main()
{
    freopen("in.txt","r",stdin);
    int n;
    int cf[20];
    while(cin>>n&&n!=0)
    {
        for(int i=0;i<=n;i++)cin>>cf[i];
        double l=-1.0,r=1e6,m;
        for(int i=0;i<100;i++)
        {
            m=l+(r-l)/2;
            double f=1.0,s=0;
            for(int j=1;j<=n;j++)
            {
                f/=(1+m);
                s+=cf[j]*f;
            }
            if(s<-cf[0])r=m;
            else l=m;
        }
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<m<<endl;
    }
    return 0;
}


© 著作权归作者所有

共有 人打赏支持
上一篇: PHP读取XML小记
下一篇: SPFA做最短路
侯禹
粉丝 96
博文 49
码字总数 34362
作品 0
海淀
程序员
私信 提问
10.21【Codeforces NEERC 胡玩记】

第0分钟 Friends: CDQZ2017naive:Joker23,AzraelDaeth,带着蒟蒻我 CDQZnaiver:callmestd,aziint,djyang gouliguojia:myjs999,XieTianchi2017 Bitset works much better than FFT: yjq_naive......

OwenOwl
2017/10/22
0
0
Leetcode(153) Find Minimum in Rotated Sorted Array

Leetcode上的一道题。在rotated array中找到最小值。一个rotated array就是一个已排序好的数组绕着某个位置旋转180度,像[1,2,3,4,5,6],绕着5旋转后就是[5,6,1,2,3,4]。 用二分法找最小值,...

mambakb
12/05
0
0
[面试题]1000瓶毒药里面只有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒。

题目:1000瓶毒药里面只有1瓶是有毒的,毒发时间为24个小时,问需要多少只老鼠才能在24小时后试出那瓶有毒。 思路:这题试Bloom Fliter 算法。详情可以参考:https://blog.csdn.net/jiaomen...

Boomboombeng
12/02
0
0
SparseArray源码浅析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zly921112/article/details/84204457 前言 最近有小伙伴去面试了,在群里分享的面试题有一道是关于的,本来是...

zhuliyuan丶
11/18
0
0
python 二分插入、遍历目录

这两道题是之前面试测试开发遇到的,今天分享给大家。 遍历文件 python 遍历文件夹下所有文件,并打印出所有文件名 二分法 python 在顺序列表中,二分法查找且插入一个数

lvyz0207
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NEO区块链-DAPP开发直通车-第零篇

什么是DAPP DAPP 是以太坊发明的词汇 Decentralized Application. 目前基于区块链技术开发的应用程序广泛的接受使用了这一名称。 NEL将为开发DAPP提供全面的服务 什么是NEL NEL是 “NewEcon...

NEO-FANS
12分钟前
0
0
可视化软件VisIt在Ubuntu18.04上的安装

可视化软件VisIt在Ubuntu18.04上的安装 参考文档及使用说明 1.下载 在官网下载页面下载合适版本的安装文件,Ubuntu有专用的 https://wci.llnl.gov/simulation/computer-codes/visit/executa...

佚文
18分钟前
0
0
GROUP BY GROUPING SETS

GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。通过 GROUPING SETS 子句,您可采用多种方式对结果分组,而不必使用多个 SELECT 语句来实现这一目的。这就意味着,能够减少响应时...

hblt-j
27分钟前
2
0
selenium之表格的定位

真的勇士, 敢于直面惨淡的warning、 敢于正视淋漓的error 目录 被测试网页的HTML代码 1.遍历表格所有单元格 2.定位表格中的某个元素 3.定位表格中的子元素 总结 浏览器网页常常会包含各类表...

程序猿拿Q
32分钟前
1
0
adb命令启动展讯平台工厂模式

adb命令启动展讯工厂模式: adb shell am start com.sprd.engineermode/com.sprd.engineermode.EngineerModeActivity 其它系统应用启动命令: 其他的一些应用启动命令,如下所示: calendar...

东街小霸王
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部