Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การประเมินความเสี่ยงในการลงทุนใน 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.