ในปัญหานี้ เราได้รับสองอาร์เรย์แต่ละรายการซึ่งแสดงถึงแผนการลงทุน งานของเราคือดำเนินการ การประเมินความเสี่ยงในการลงทุน และค้นหาว่าการลงทุนใดในสองข้อนี้มีแนวโน้มมากกว่า
ทั้งการลงทุน 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.