top1编程
← 返回题目
题解

【入门】哪个厂家的零件更标准?

1 条题解

  • 0
    @ 2026-7-31 16:09:52

    解题思路

    题目要求比较甲乙两个厂生产的零件哪个更一致(方差更小)。

    方差是什么? 方差表示数据偏离平均值的程度。方差越小,数据越集中、越一致。

    方差公式: 每个数据减去平均值,平方后全部加起来。

    思路:

    1. 读入两厂的零件尺寸
    2. 分别算两厂的平均值
    3. 分别算两厂的方差(每个数据减平均值,平方,累加)
    4. 方差小的厂更一致,输出它

    为什么要平方? 如果不平方,正负偏差会互相抵消。平方后所有偏差都变成正数,能真实反映离散程度。

    举例:

    • 甲厂平均值 100.4,方差 5.2
    • 乙厂平均值 100.4,方差 53.2
    • 甲厂方差小,输出 jia

    参考代码

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        int a[1500], b[1500], n;
        double x1 = 0, x2 = 0;
        cin >> n;
    
        for (int i = 0; i < n; i++) cin >> a[i];
        for (int i = 0; i < n; i++) cin >> b[i];
    
        for (int i = 0; i < n; i++) {  // 算平均值
            x1 += a[i];
            x2 += b[i];
        }
        x1 /= n;
        x2 /= n;
    
        double s1 = 0, s2 = 0;
        for (int i = 0; i < n; i++) {  // 算方差
            s1 += (a[i] - x1) * (a[i] - x1);
            s2 += (b[i] - x2) * (b[i] - x2);
        }
    
        if (s1 < s2) {
            cout << "jia" << endl;  // 甲厂更一致
        } else {
            cout << "yi" << endl;
        }
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(N),遍历两遍
    • 空间复杂度:O(N),存尺寸数组
    • 1