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

หาค่าเฉลี่ยและความแปรปรวนรวมของสองชุดข้อมูลใน C++

แนวคิด

ได้รับสองชุดข้อมูล arr1[b] และ arr2[a] ขนาด b และ a ให้หาค่าเฉลี่ยและความแปรปรวนของชุดข้อมูลรวม

อินพุต

Arr1[] = {24, 46, 35, 79, 13, 77, 35}; Arr2[] = {66, 68, 35, 24, 46};

เอาต์พุต

Mean1: 44.1429 Mean2: 47.8 StandardDeviation1: 548.694 StandardDeviation2: 294.56 Combined Mean: 45.6667 d1 square: 2.322 d2_square: 4.5511 Combined Variance: 446.056

วิธีการ

สมมติว่า:

n1 = จำนวนการสังเกตใน 'ภูมิภาค 1'

n2 = จำนวนการสังเกตใน 'ภูมิภาค 2'

X1 = ค่าเฉลี่ยของภูมิภาค 1

X2 = ค่าเฉลี่ยของภูมิภาค 2

S1 = ส่วนเบี่ยงเบนมาตรฐานของภูมิภาค 1

S2 = ส่วนเบี่ยงเบนมาตรฐานของภูมิภาค 2

S12 = ความแปรปรวนของภูมิภาค 1

S22 = ความแปรปรวนของภูมิภาค 2

ให้ X = ค่าเฉลี่ยของกลุ่มรวม

ดังนั้น d1 = X - X1

และ d2 = X - X2

คำนวณค่าเฉลี่ยของกลุ่มรวม X ว่า

(n1*X1 + n2*X2) / (n1 + n2)

คำนวณความแปรปรวนของกลุ่มรวมว่า

n1*(S12 + d12) + n2*(S22 + d22) / (n1 + n2)

ตัวอย่างโค้ด C++

// โปรแกรม C++ หาค่าเฉลี่ยและความแปรปรวนรวมของสองชุดข้อมูล
#include <bits/stdc++.h>
using namespace std;

// ฟังก์ชันหาค่าเฉลี่ยของชุดข้อมูล
float mean(int Arr[], int b) {
    int sum1 = 0;
    for (int i = 0; i < b; i++)
        sum1 = sum1 + Arr[i];
    float mean = (float)sum1 / b;
    return mean;
}

// ฟังก์ชันหาส่วนเบี่ยงเบนมาตรฐานของชุดข้อมูล
float sd(int Arr[], int b) {
    float sum1 = 0;
    for (int i = 0; i < b; i++)
        sum1 = sum1 + (Arr[i] - mean(Arr, b)) * (Arr[i] - mean(Arr, b));
    float sdd = sum1 / b;
    return sdd;
}

// ฟังก์ชันหาความแปรปรวนรวมของสองชุดข้อมูล
float combinedVariance(int Arr1[], int Arr2[], int b, int a) {
    // mean1 และ mean2 คือค่าเฉลี่ยของสองอาร์เรย์
    float mean1 = mean(Arr1, b);
    float mean2 = mean(Arr2, a);
    cout << "Mean1: " << mean1 << " mean2: " << mean2 << endl;
    // sd1 และ sd2 คือส่วนเบี่ยงเบนมาตรฐานของสองอาร์เรย์
    float sd1 = sd(Arr1, b);
    float sd2 = sd(Arr2, a);
    cout << "StandardDeviation1: " << sd1 << " StandardDeviation2: " << sd2 << endl;
    // combinedMean คือตัวแปรเก็บค่าเฉลี่ยรวม
    float combinedMean = (float)(b * mean1 + a * mean2) / (b + a);
    cout << "Combined Mean: " << combinedMean << endl;
    // d1_square และ d2_square คือการเบี่ยงเบนของค่าเฉลี่ยรวม
    float d1_square = (mean1 - combinedMean) * (mean1 - combinedMean);
    float d2_square = (mean2 - combinedMean) * (mean2 - combinedMean);
    cout << "d1 square: " << d1_square << " d2_square: " << d2_square << endl;
    // combinedVar คือตัวแปรเก็บความแปรปรวนรวม
    float combinedVar = (b * (sd1 + d1_square) + a * (sd2 + d2_square)) / (b + a);
    cout << "Combined Variance: " << combinedVar;
}

// ฟังก์ชันหลัก
int main() {
    int Arr1[] = {24, 46, 35, 79, 13, 77, 35};
    int Arr2[] = {66, 68, 35, 24, 46};
    int b = sizeof(Arr1) / sizeof(Arr1[0]);
    int a = sizeof(Arr2) / sizeof(Arr2[0]);
    // เรียกฟังก์ชันหาค่าเฉลี่ยรวม
    combinedVariance(Arr1, Arr2, b, a);
    return 0;
}

เอาต์พุต

Mean1: 44.1429 mean2: 47.8 StandardDeviation1: 548.694 StandardDeviation2: 294.56 Combined Mean: 45.6667 d1 square: 2.322 d2_square: 4.5511 Combined Variance: 446.056