C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++への投資におけるリスクの評価


この問題では、それぞれが投資計画を示す2つの配列が与えられます。私たちのタスクは、投資リスクの評価を実行することです。 2つの投資のどちらがより有望であるかを見つけます。

投資I1[][]とI2[][]の両方に、一連の結果とその投資結果の確率があります。

これらの値を使用して、各投資のリスクを見つけ、2つの投資からより良い投資を印刷する必要があります。

このために、統計数学を使用して、より良い投資を結論付けるのに役立ついくつかの値を見つけます。

これらの値が見つかります

  • 投資の平均額または平均額 投資結果と確率の積の合計。
  • 獲得額の偏差

の値がわかります

標準偏差/投資の平均

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.

  1. C++での式ツリーの評価

    この問題では、+、-、/、*などの二項演算で構成される式ツリーが与えられます。式ツリーの評価を行ってから、結果を返す必要があります。 表現ツリー は特殊なタイプの二分木であり、各ノードは次のように分散される演算子またはオペランドで構成されます- ツリーのリーフノードは、操作が実行される値です。 非リーフノードは二項演算子で構成されます 実行する操作を示します。 問題を理解するために例を見てみましょう 入力: 出力: 1 説明: 式ツリーのデコード Exp =((5 + 9)/(2 * 7)) =(14/14) = 1 ソリューションアプローチ

  2. 二重積分を計算するC++プログラム

    変数xの下限、変数xの上限、変数yの下限、変数yの上限、対応するxに対して実行されるステップ、および対応するyに対して実行されるステップが与えられ、タスクは二重積分を生成することです。結果を表示します。 例 Input-: steps for x = 1.2 steps for y = 0.54 lower limit of x = 1.3 upper limit of x = 2.1 lower limit of y = 1.0 upper limit for y = 2.1 Output-: double integration is : 2.1 以下のプログラムで使用されるアプローチは