C语言 如何使用数组计算方差?

gz5pxeao  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(187)

这位学生是新来的。
我有一个项目,我必须通过使用一维数组和使用动态内存分配来给予方差。我还需要计算两个列表的平均值、标准差和误差以及相关系数。到目前为止,我的一切都是正确的,但不知道如何做剩下的事情。以下是我所拥有的方差,任何帮助都非常感谢,因为我已经尝试了几个小时,但无法弄清楚。

for (element = first_element; element < number_of_elements; element++) {
  list1_sum = list1_sum + pow((list1_numbers[element] - list1_mean), 2);
}

variance_1 = list1_sum / (number_of_elements) - (1);
ee7vknir

ee7vknir1#

population and sample variance
OP的variance_1 = list1_sum / (number_of_elements) - (1);两者都不是。
修复的代码:

list1_sum = 0; // Be sure to zero the sum
end_plus1 = first_element + number_of_elements
for (element = first_element; element < end_plus1; element++) {
  list1_sum = list1_sum + pow(list1_numbers[element] - list1_mean, 2);
}

variance_population = list1_sum / (number_of_elements - 1);
variance_sample = list1_sum / number_of_elements;

额外的代码将处理n <= 1和可能溢出中间计算的非常大的值的极端情况。
OP使用first_element而不是0,因此可能需要调整number_of_elements:这是0的元素数还是first_element的元素数?本答案假设是后者。

相关问题