C++ 中投资风险评估
本例题中,给了我们两个数组,每个数组都代表一个投资计划。我们的任务是执行投资风险评估,找出两个投资中哪一个更有前景。
投资 I1[][] 和 I2[][] 包含一系列投资结果及其发生的概率。
使用这些值,我们需要找到每笔投资的风险,然后从这两笔投资中打印出更好的投资。
为此,我们将使用统计数学并找出一些值,帮助我们得出更好的投资结论。
我们将找到这些值,
- 投资平均数,投资结果和概率乘积的和。
- 投资收益的偏差
我们将找出这个值,
投资标准差/均值
S.D. / 均值较小的投资是结果。
展示我们解决方案运作方式的程序,
实例
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
typedef pair<float,float> Data;
typedef vector Vector;
float totalProdProbOutcome(const Vector & v)
{
float sum = 0;
for ( auto i : v) {
sum += i.first * i.second;
}
return sum;
}
float totalProb(const Vector & v) {
float sum = 0.0;
for ( auto i : v) {
sum += i.second;
}
return sum;
}
float CalcMeanVal(const Vector & v) {
return totalProdProbOutcome(v) / totalProb(v);
}
float calcStdDevi(const Vector & v)
{
float mean = CalcMeanVal(v);
float sum = 0;
for (auto i: v)
sum += (i.first-mean)* (i.first-mean)*i.second;
return sqrt(sum/totalProb(v));
}
int main() {
Vector A = { {450,0.3}, {250,0.4}, {100,0.2}, {300,0.1}};
Vector B = { {300,0.2}, {150,0.5}, {500,0.3}};
float meanA = CalcMeanVal(A);
float meanB = CalcMeanVal(B);
float SdA = calcStdDevi(A);
float SdB = calcStdDevi(B);
if( (SdA / meanA) > (SdB / meanB))
cout<<"Investment A is Better investment.\n";
else
cout<<"Investment B is better investment.\n";
return 0;
}输出 −
Investment B is better investment.
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP