Computer >> Máy Tính >  >> Lập trình >> C ++

Đánh giá rủi ro khi đầu tư vào C ++

Trong bài toán này, chúng tôi đưa ra hai mảng, mỗi mảng biểu thị một kế hoạch đầu tư. Nhiệm vụ của chúng tôi là thực hiện đánh giá Rủi ro trong Đầu tư và tìm khoản đầu tư nào trong hai khoản đầu tư có triển vọng hơn.

Cả hai khoản đầu tư I1 [] [] và I2 [] [] đều có một tập hợp các kết quả và xác suất của kết quả đầu tư đó.

Sử dụng các giá trị này, chúng ta cần tìm rủi ro trong mỗi khoản đầu tư và sau đó in ra khoản đầu tư tốt hơn trong số hai khoản đầu tư.

Đối với điều này, chúng tôi sẽ sử dụng toán học thống kê và tìm một số giá trị sẽ giúp chúng tôi kết luận về khoản đầu tư tốt hơn.

Chúng tôi sẽ tìm thấy những giá trị này,

  • Số tiền trung bình hoặc số tiền trung bình hình thành khoản đầu tư, tổng của tích số của kết quả đầu tư và xác suất.
  • Sai lệch về số tiền kiếm được

Chúng tôi sẽ tìm thấy giá trị của,

Độ lệch chuẩn / trung bình đầu tư khoảng

Khoản đầu tư có giá trị thấp hơn của S.D. / mean là kết quả.

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví 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;
}

Đầu ra -

Investment B is better investment.