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

Chương trình C++ tính độ lệch chuẩn dữ liệu nhóm

Cho khoảng lớp (class interval) và tần suất. Tính độ lệch chuẩn của dữ liệu nhóm.

Trung bình nhóm: Σ(fᵢ×xᵢ) / Σfᵢ (xᵢ là trung điểm lớp). Độ lệch chuẩn: sqrt((Σfᵢxᵢ² - n×mean²) / (n-1)).

Ví dụ

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

float calc_mean(float mid[], int freq[], int n) {
    float sum = 0, freqSum = 0;
    for (int i = 0; i < n; i++) {
        sum += mid[i] * freq[i];
        freqSum += freq[i];
    }
    return sum / freqSum;
}

float calc_deviation(float lower_limit[], float upper_limit[], int freq[], int n) {
    float mid[n], sum = 0, freqSum = 0, sd;
    for (int i = 0; i < n; i++) {
        mid[i] = (lower_limit[i] + upper_limit[i]) / 2;
        sum += freq[i] * mid[i] * mid[i];
        freqSum += freq[i];
    }
    sd = sqrt((sum - freqSum * calc_mean(mid, freq, n) * calc_mean(mid, freq, n)) / (freqSum - 1));
    return sd;
}

int main() {
    float lower_limit[] = {50, 61, 71, 86, 96};
    float upper_limit[] = {60, 70, 85, 95, 100};
    int freq[] = {9, 7, 9, 12, 8};
    int n = sizeof(lower_limit) / sizeof(lower_limit[0]);
    cout << calc_deviation(lower_limit, upper_limit, freq, n) << endl;
    return 0;
}

Kết quả

15.757