zoukankan      html  css  js  c++  java
  • A-问题收益率

    问题:
    在金融中,我们有时会用内部收益率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 = 10000 + 5;
    const int eps = 1e-8;
    double a[N];
    
    double solve(int n){
        double l,r,mid,f,ans;
        l = -1.0,r = 10000;
        for(int t = 1;t<=100;t++){
            mid = (r+l)/2;
            f = 1.0,ans = 0;
            for(int i=1;i<=n;i++){
                f=f/(1+mid);
                ans += a[i]*f;
            }
            if(ans > (-a[0])) l = mid;
            else r = mid;
        }
        return mid;
    }
    
    int main(){
        int n;
        while(cin >> n && n){
            for(int i=0;i<=n;i++)
                cin >> a[i];
            printf("%.2lf
    ",solve(n));
        }
        return 0;
    }
  • 相关阅读:
    2-jenkins持续集成体系介绍
    第六天打卡
    第五天打卡(find用法)
    第五天打卡
    第四天打卡
    第三天打卡
    第一天:定个小目标,学习REDHAT,希望能去考下RHCE
    day12
    Python3的List操作和方法
    Python3字符串的操作
  • 原文地址:https://www.cnblogs.com/Pretty9/p/7347692.html
Copyright © 2011-2022 走看看