Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình tìm hiệp phương sai (covariance) trong C++


Cho 2 tập biến ngẫu nhiên. Tính hiệp phương sai: độ đo sự biến thiên cùng nhau.

Công thức

Cov(X,Y) = Σ(x_i - mean_x)(y_i - mean_y) / (n-1).

Ví dụ triển khai (C++)

#include <bits/stdc++.h>
using namespace std;

float mean(float arr[], int n) {
    float sum = 0;
    for (int i = 0; i < n; i++) sum += arr[i];
    return sum / n;
}

float covariance(float arr1[], float arr2[], int n) {
    float mx = mean(arr1, n), my = mean(arr2, n);
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum += (arr1[i] - mx) * (arr2[i] - my);
    return sum / (n - 1);
}

int main() {
    float arr1[] = {65.21, 64.75, 65.26, 65.76, 65.96};
    float arr2[] = {67.25, 66.39, 66.12, 65.70, 66.64};
    int n = sizeof(arr1)/sizeof(arr1[0]);
    cout << covariance(arr1, arr2, n);
    return 0;
}

Đầu ra

-0.0580511