โจทย์
เราได้รับอาเรย์ของค่า float ขนาด n งานคือหา coefficient of variation และแสดงผลลัพธ์
Coefficient of Variation คืออะไร?
ในมิติทางสถิติ coefficient of variation ใช้หาช่วงความแปรปรวนของข้อมูลที่กำหนด ในแง่การเงิน coefficient of variation ใช้หาจำนวนความเสี่ยงที่เกี่ยวข้องกับจำนวนเงินที่ลงทุน หากอัตราส่วนระหว่าง standard deviation และ mean ต่ำ ความเสี่ยงที่เกี่ยวข้องกับการลงทุนก็จะต่ำ Coefficient of variation คืออัตราส่วนระหว่าง standard deviation และ mean และกำหนดโดย -
Coefficient of variation = Standard Deviation / Mean
ตัวอย่าง
Input-: array[] = { 10.0, 21, 23, 90.0, 10.5, 32.56, 24, 45, 70.0 } Output-: coefficient of variation is : 0.75772
Input-: array[] = { 15.0, 36.0, 53.67, 25.45, 67.8, 56, 78.09} Output-: coefficient of variation is : 0.48177
แนวทางที่ใช้ในโปรแกรมที่กำหนด
- รับอาเรย์ที่มีค่า float
- คำนวณค่า mean และ standard deviation บนอาเรย์ที่กำหนด
- คำนวณค่า coefficient of variation โดยการหารค่า standard deviation ด้วย mean
- แสดงผลลัพธ์เป็น coefficient of variation
อัลกอริทึม
เริ่ม
ขั้นตอน 1 → ประกาศฟังก์ชันคำนวณค่า mean
float cal_mean(float arr[], int size)
ประกาศ float sum = 0
วนลูป For i = 0 ถึง size และ i++
ตั้งค่า sum = sum + arr[i]
จบวน
คืนค่า sum / size
ขั้นตอน 2 → ประกาศฟังก์ชันคำนวณค่า standard deviation
float StandardDeviation(float arr[], int size)
ประกาศ float sum = 0
วนลูป For i = 0 ถึง size และ i++
ตั้งค่า sum = sum + (arr[i] - cal_mean(arr, size)) * (arr[i] - cal_mean(arr, size))
จบวน
เรียก cal_mean(arr, size)
คืนค่า sqrt(sum / (size - 1))
ขั้นตอน 3 → ประกาศฟังก์ชันคำนวณ coefficient of variation
float CoefficientOfVariation(float arr[], int size)
คืนค่า StandardDeviation(arr, size) / cal_mean(arr, size)
ขั้นตอน 4 → ใน main()
ประกาศอาเรย์ float arr[] = { 10.0, 21, 23, 90.0, 10.5, 32.56, 24, 45, 70.0}
คำนวณขนาดอาเรย์ int size = sizeof(arr) / sizeof(arr[0])
เรียกฟังก์ชัน CoefficientOfVariation(arr, size)
หยุด
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
// ฟังก์ชันคำนวณ mean
float cal_mean(float arr[], int size) {
float sum = 0;
for (int i = 0; i < size; i++)
sum = sum + arr[i];
return sum / size;
}
// ฟังก์ชันคำนวณ standard deviation
float StandardDeviation(float arr[], int size) {
float sum = 0;
for (int i = 0; i < size; i++)
sum = sum + (arr[i] - cal_mean(arr, size)) * (arr[i] - cal_mean(arr, size));
return sqrt(sum / (size - 1));
}
// ฟังก์ชันคำนวณ coefficient of variation
float CoefficientOfVariation(float arr[], int size) {
return StandardDeviation(arr, size) / cal_mean(arr, size);
}
int main() {
float arr[] = { 10.0, 21, 23, 90.0, 10.5, 32.56, 24, 45, 70.0};
int size = sizeof(arr) / sizeof(arr[0]);
cout<<"coefficient of variation is : "<<CoefficientOfVariation(arr, size);
return 0;
}
ผลลัพธ์
coefficient of variation is : 0.75772