You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码欲计算Sample Standard Deviation却得到Population Standard Deviation,求问题原因

问题出在这两个细节上!

嘿,我一眼就瞅到问题所在啦,咱们一步步捋清楚:

先搞懂核心差异

样本标准差和总体标准差的关键区别在方差的计算分母:

  • 总体标准差:方差除以样本总数 n
  • 样本标准差:方差除以 n-1(这是为了修正样本对总体的偏差,业内叫贝塞尔校正)

你的代码里有两个小疏漏:

1. 分母用成了n而非n-1

你现在计算方差的代码是:

std = (mm1+mm2+mm3)/3;

这里除以3(也就是样本数n=3),算出来的是总体方差,要改成除以3-1=2才能得到样本方差。

2. 少了开平方的关键步骤

标准差是方差的平方根!你现在算的只是方差,不管是样本还是总体,最后都要对结果取根号才能得到标准差。

修改后的代码示例

public void compute(View view) {
    no1 = Double.parseDouble(et1.getText().toString());
    no2 = Double.parseDouble(et2.getText().toString());
    no3 = Double.parseDouble(et3.getText().toString());
    
    m = (no1 + no2 + no3)/3;
    
    mm1= (no1-m);
    mm1 = mm1*mm1;
    mm2= (no2-m);
    mm2 = mm2*mm2;
    mm3= (no3-m);
    mm3 = mm3*mm3;
    
    // 先计算样本方差:除以n-1=2
    double sampleVariance = (mm1+mm2+mm3)/(3-1);
    // 开平方得到样本标准差
    double sampleStd = Math.sqrt(sampleVariance);
    
    tv1.setText(String.valueOf(sampleStd));
}

这样调整后,就能得到正确的样本标准差啦!

内容的提问来源于stack exchange,提问作者Aljohn Dela CRUZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:01:07