昨天完成了自己人生中的第二次笔试,不得不感慨,许多看似不重要的知识却是你平时学习的盲点。
这一年以来一直在做应用开发,慢慢的忽略了算法知识,昨天在考卷上碰到了这样一道题,一个长度为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语言关于数组方法的整合,包括详细的各个函数名及作用
方差是统计学中衡量一组数据离散程度的重要指标,它反映了数据分布的不均匀性。在C语言中实现方差计算器是一项基础但关键的任务,尤其对于数据分析和实验研究而言。下面将详细介绍如何使用C语言进行方差计算,并探讨...
它的基本思想是分治法(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循环,遍历数组的前`n`个元素,使用`cin`进行输入。 2. `aver()` 函数:这个函数用于计算数组的平均值。它通过初始化一个变量`sum`为零,然后遍历整个数组,累加所有元素的值,最后除以元素个...
遍历数组,计算每个元素与平均值之差的三次方,然后乘以一个系数,该系数基于样本大小和方差。 6. 计算峰度。峰度的计算涉及到差值的四次方,同样需要遍历数组,计算每个元素与平均值之差的四次方,再乘以相应的系数...
在外层循环中,我们遍历数组`a`,在内层循环中,我们计算每个元素到当前元素的最小方差,并将其存储在数组`dp`中。 在计算过程中,我们使用了一个辅助变量`gap`来存储当前元素到之前元素的方差,并使用了一个辅助...
如果要扩展到三个班级,只需在数据结构和计算逻辑中增加一个维度。 2. 整数排序 这个问题展示了如何对三个整数进行排序。使用了冒泡排序的思想,通过比较和交换变量值,确保每次迭代后最大或最小的元素都能被放到...
2. 在`main()`函数中,初始化最大值为数组的第一个元素,然后遍历数组,更新最大值和其出现次数。另外,计算能被3或7整除的数的总和(用于计算平均值)和计数器(n)。 3. 最后,计算平均值并将其与最大值、出现次数...
二维数组按行求平均值,形成一个新的一维数组
在一般的数学统计过程中,为了求得方差,需要预先知道所有的数据项,然后通过求均值,再通过遍历所有数据项计算平方和的方式求得方差。 但是在大数据、流式处理的场景,是无法预先知道所有数据项的,经常需要在任意...
在第三题中,通过对数组元素的遍历,可以统计出奇数和偶数的个数,计算它们的和,进而求得平均值。同时,通过已知公式计算方差,这需要先存储奇数的值,然后根据这些值进行计算。 7. 错误提示:在解题过程中,应...
在`Compute()`函数中,通过遍历数组,判断每个元素是否为奇数,记录奇数个数(odd)、累加奇数的总和(用于计算平均值),并将奇数存储到另一个数组tt中。奇数的平均值由奇数的总和除以奇数个数得到,方差则通过每个...
已知数组,求其均值和方差
在C++中,可以使用循环结构遍历数组,计算总和,然后除以元素数量得到平均值。 2. 中位数:中位数是将一组数据从小到大排列后处于中间位置的数,如果数据个数为偶数,则取中间两个数的平均值。在编程中,可以先对...
VB方差计算器示例,您看到的这个软件是原代码共享计划的一个产物,点击这里下载本程序原代码。在方差计算器的文本框内输入数据,每个数据...代码中a为需要排序的数组,sheng为True则为升序排列,为False,则为降序排列。
在这个场景下,`var2d`显然是一个自定义的MATLAB函数,用于计算二维矩阵(数组)的方差。下面我们将深入探讨二维方差的计算方法以及如何在MATLAB中实现这个功能。 首先,让我们了解什么是方差。方差是所有数据与...
例如,在代码中,我们看到一个双重循环用于遍历数组并进行排序,然后将排序后的前10个元素存储到新的数组中。 2. **“SIX”与“NINE”的问题** 这一题是一个逻辑推理与循环遍历的结合。题目给出了等式"SIX + SIX +...