昨天完成了自己人生中的第二次笔试,不得不感慨,许多看似不重要的知识却是你平时学习的盲点。
这一年以来一直在做应用开发,慢慢的忽略了算法知识,昨天在考卷上碰到了这样一道题,一个长度为X的数组,里面存有N个数,能否只遍历数组一次就求得数组的方差。当时脑海里的第一反应就是:“可以”。但却怎么也想不起来计算方差的第二个公式,回来后翻看概论率与数理统计的课本,才找到了这个公式:DX^2=EX^2-(EX)^2,瞬时间,恍然大悟。代码如下:
public class Deviation { /** * 传统的利用平均数求方差的方法,需要遍历数组两次 * @param a 目标数组 * @return 方差 */ private static double ComputeVariance(double a[]){ double variance=0;//方差 double average=0;//平均数 int i,len=a.length; double sum=0,sum2=0; for(i=0;i<len;i++){ sum+=a[i]; } average=sum/len; for(i=0;i<len;i++){ sum2+=(a[i]-average)*(a[i]-average); } variance=sum2/len; return variance; } /** * 只遍历数组一次求方差,利用公式DX^2=EX^2-(EX)^2 * @param a * @return */ private static double ComputeVariance2(double a[]){ double variance=0;//方差 double sum=0,sum2=0; int i=0,len=a.length; for(;i<len;i++){ sum+=a[i]; sum2+=a[i]*a[i]; } variance=sum2/len-(sum/len)*(sum/len); return variance; } public static void main(String args[]){ double a[]={1,2,3,4,5}; System.out.println(ComputeVariance(a)); System.out.println(ComputeVariance2(a)); } }
革命尚未成功,同志仍需努力。
相关推荐
c++下编写一个程序,实现输入n个数到一维数组,并求其均方差。
在Scala语言中,数组作为一种基本的数据结构,在处理大量数据时非常有用。Scala提供了丰富的数组操作方法,这些方法可以帮助开发者更高效、更简洁地进行数组的管理和操作。下面将详细介绍Scala中的一些关键数组方法...
方差是统计学中衡量一组数据离散程度的重要指标,它反映了数据分布的不均匀性。在C语言中实现方差计算器是一项基础但关键的任务,尤其对于数据分析和实验研究而言。下面将详细介绍如何使用C语言进行方差计算,并探讨...
3. **遍历数组**:使用for循环或while循环遍历数组是计算平均分和均方差的关键。循环遍历数组中的每个元素,对成绩进行累加以计算总和,同时记录总人数(即元素个数)。 4. **平均分计算**:平均分是所有成绩总和...
在VB中,我们可以使用数组来存储一组数据,使用循环结构遍历数组,进行方差计算。VB中的变量声明、数组操作、循环结构、函数调用等基础知识在这里起到了关键作用。 1. 变量声明:首先,我们需要声明一个数组来存储...
它的基本思想是分治法(Divide and Conquer),通过选择一个基准元素,将数组分成两个子数组,使得一部分元素小于基准,另一部分元素大于基准,然后递归地对这两个子数组进行快速排序,最终实现整个数组的有序排列。...
数组的标准差是数组元素的偏离程度,通过计算数组的方差,然后计算平方根,我们可以获得数组的标准差。代码实现如下: ``` for (let i = 0; i ; i++) { sums += (Number(arr[i]) - avg) * (Number(arr[i]) - avg); ...
现在,让我们编写一个Python函数,用于计算一个列表或数组中的均值和方差。首先,我们需要导入Python的numpy库,因为这个库提供了一些方便的数据处理函数: ```python import numpy as np ``` 接下来,我们可以...
- 使用`for`循环遍历数组中的每一个元素。 3. **数学运算** - 计算数组所有元素之和。 - 计算数组的长度。 - 计算平均值:元素总和除以元素数量。 4. **编码规范** - 编写清晰易读的代码。 - 适当的注释有助...
它的实现是通过一个for循环,遍历数组的前`n`个元素,使用`cin`进行输入。 2. `aver()` 函数:这个函数用于计算数组的平均值。它通过初始化一个变量`sum`为零,然后遍历整个数组,累加所有元素的值,最后除以元素个...
遍历数组,计算每个元素与平均值之差的三次方,然后乘以一个系数,该系数基于样本大小和方差。 6. 计算峰度。峰度的计算涉及到差值的四次方,同样需要遍历数组,计算每个元素与平均值之差的四次方,再乘以相应的系数...
在外层循环中,我们遍历数组`a`,在内层循环中,我们计算每个元素到当前元素的最小方差,并将其存储在数组`dp`中。 在计算过程中,我们使用了一个辅助变量`gap`来存储当前元素到之前元素的方差,并使用了一个辅助...
如果要扩展到三个班级,只需在数据结构和计算逻辑中增加一个维度。 2. 整数排序 这个问题展示了如何对三个整数进行排序。使用了冒泡排序的思想,通过比较和交换变量值,确保每次迭代后最大或最小的元素都能被放到...
2. 在`main()`函数中,初始化最大值为数组的第一个元素,然后遍历数组,更新最大值和其出现次数。另外,计算能被3或7整除的数的总和(用于计算平均值)和计数器(n)。 3. 最后,计算平均值并将其与最大值、出现次数...
二维数组按行求平均值,形成一个新的一维数组
在第三题中,通过对数组元素的遍历,可以统计出奇数和偶数的个数,计算它们的和,进而求得平均值。同时,通过已知公式计算方差,这需要先存储奇数的值,然后根据这些值进行计算。 7. 错误提示:在解题过程中,应...
在`Compute()`函数中,通过遍历数组,判断每个元素是否为奇数,记录奇数个数(odd)、累加奇数的总和(用于计算平均值),并将奇数存储到另一个数组tt中。奇数的平均值由奇数的总和除以奇数个数得到,方差则通过每个...
在Java中,你可以通过遍历数组并累加元素,然后除以元素个数来实现这个计算。 ```java double sum = 0; for (int i = 0; i ; i++) { sum += data[i]; } double mean = sum / data.length; ``` 这里的`data`是一个...
已知数组,求其均值和方差