精华内容
下载资源
问答
  • 一种高效的求平均数算法
    千次阅读
    2014-06-23 14:58:45
    传统的求平均是先求sum,
    此种方法(avg += (x - avg) / i;)就避免了求和的溢出

     
    
    #include<iostream>
    using namespace std;
    int main(int agrc, char*agrv[])
    {
    	int x, n = 0;
    	while (cin >> n)
    	{
    		double avg = 0;
    		for (int i = 1; i <= n; i++)
    		{
    			cin >> x;
    			avg += (x - avg) / i;
    		}
    		cout.precision(3);
    		cout << fixed << avg << endl;
    	}
    	//return 0;
    }


    更多相关内容
  • 今天为大家带来数量关系题库:快速计算平均数的变化量。在一般的事业单位行的行测考试中,都会有资料分析这一个部分,而资料分析是整个考试中又是相对比较简单的一部分,所以这就要求大家在进行做题时要熟练的掌握做...

    【导读】

    中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系题库:快速计算平均数的变化量。

    在一般的事业单位行的行测考试中,都会有资料分析这一个部分,而资料分析是整个考试中又是相对比较简单的一部分,所以这就要求大家在进行做题时要熟练的掌握做题的方法和技巧。而在资料分析中我们经常考察的知识点有增长,比重,平均数,倍数等。而在考试中,关于平均数,经常会出现让计算平均数的变化量这类型题目。考生们碰到这样的题目总是觉得特别的头疼,觉得得把两年的平均数都写出来算出来然后再减,计算量太大就产生了放弃的心理。所以今天,中公教育的研究与辅导专家就教教大家如何快速的判断平均数的变化。

    我们先来看看平均数的变化量都是如何出题的。

    例题:2015年1-7月,我国塑料制品出口553.7万吨,出口额1293.3亿元,出口量同比增长2.3%,出口额同比增长2.9%。求2015年1-7月,我国塑料制品平均价格同比增长量为多少元/吨?

    A. 136 B.257 C.320 D.409

    通过这道题我们发现是让我们求平均数的增长量,如果是直接去进行计算的话,要算出来2014年1-7月我国塑料制品平均价格和2015年1-7月我国塑料制品平均价格,然后再减一下计算增长量。但是这样的话计算过程过于复杂,花费的时间也相对较多,所以我们就来看看能不能总结出一个关于平均数的增长量的计算公式。

    4b95a9d1d6068425f02e5cefe08aea22.png

    5c3cca1ada451903b0755d3a33ee1611.png

    4c7b7075f093b088f1a3e928727a74fb.png

    1c1a51f35bf455b3bb2846d538e32dc4.png

    ffb170f72cbf04dc0ddffe85d7ec6c53.png

    所以通过推导我们可以得出,平均数的增长量

    3143940af2bf6d1bec5806425bb02e2f.png

    。所以这个公式需要大家进行熟记,因为通过公式进行解答的话,速度会相应快很多。所以上面的那道题我们可以直接套用公式,也就是列式直接就是

    50f46bdd505e7f6ae18bd9e51ff9ef87.png

    而这个式子我们也可以用有效数字法得出,应该选的是A选项。

    大家可以好好观察一下这个式子会发现其实与我们之前所学过的一个知识点很相像,那就是之前大家所学习的比重的变化量,比重变化量

    5acd909af33aa1bf194207390ed297c9.png

    。会发现比重变化量和平均数变化量这两个公式基本上形式都是一样的,而这个公式我们又可以总结成:

    216912a50a19dacb99b1590e65c05028.png

    ,q表示的是增长率。所以其实以后要是遇到了现期值可以表示为

    1ae357eac44401a217f86076e7686fe1.png

    的形式,那么他的变化量就可以直接套用上面的公式了。

    这个就是我们今天要讲的如何快速的解答平均数的变化量的问题,希望大家在做题时可以应用到。

    展开全文
  • {Xi}进行平均数计算,总数为t. 将t换为c(t+1)为t+1个的平均数. 理解: 当均值计算到c(t)时,说明前t个数的均值为c(t). x-c(t)得出x和c(t)的差值使得t+1个数的均值为c(t)然后将差值除以t+1,那么c(t)+差值/(t+1)得到的...

    我们在实际的开发中如果遇到很大数据量的求和,且累加和超过了uint64的存储范围.我们需要用到以下的解法进行求和.目前这种方式只适用于平均数在uint范围内,如果不在这个范围的考虑使用系统的函数库.

    迭代法

    迭代法是一种数学算法:
    {Xi}进行平均数计算,总数为t.

    在这里插入图片描述

    将t换为c(t+1)为t+1个的平均数.
    在这里插入图片描述
    理解:
    当均值计算到c(t)时,说明前t个数的均值为c(t).
    x-c(t)得出x和c(t)的差值使得t+1个数的均值为c(t)然后将差值除以t+1,那么c(t)+差值/(t+1)得到的就是t+1的均值.

    示例:

        1      + 2          + 3
    均值 1     (2-1)/2=0.5
        1+0.5   1+0.5      (3-1.5)/3=0.5
        1.5+0.5 1.5+0.5   1.5+0.5
        2        2            2
    

    归并法

    算平均数可以按照这种思路进行求解,但是实现上需要额外的存储空间.而且实现代码较为复杂.

    每两组求和计算平均数,如果最后余出的数不够一组那么前面的平均数需要乘以其数量占比然后加上不够一组的数的占比乘以该数.

    1 + 2  | 1 + 2  | 1 + 2 
    3/2        3/2     3/2
    (3/2  +  3/2)/2    3/2
          3/2       3/2
          3/2*2/3  + 3/2*1/3 占比乘积求和
             1+1/2=1.5
    
    展开全文
  • 我想向你展示几个优化算法,它们比梯度下降法快,要理解这些算法,你需要用到指数加权平均,在统计中也叫做指数加权移动平均, 我们首先讲这个,然后再来讲更复杂的优化算法。 虽然现在恩达老师生活在美国,实际上...

    指数加权平均数(Exponentially weighted averages)

    我想向你展示几个优化算法,它们比梯度下降法快,要理解这些算法,你需要用到指数加权平均,在统计中也叫做指数加权移动平均,

    我们首先讲这个,然后再来讲更复杂的优化算法。

    虽然现在恩达老师生活在美国,实际上恩达老师生于英国伦敦。比如这儿有去年伦敦的每日温度,所以1月1号,温度是40华氏度,相当于4摄氏度。

    世界上大部分地区使用摄氏度,但是美国使用华氏度。在1月2号是9摄氏度等等。在年中的时候,一年365天,年中就是说,大概180天的样子,也就是5月末,温度是60华氏度,也就是15摄氏度等等。夏季温度转暖,然后冬季降温。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    你用数据作图,可以得到以下结果,起始日在1月份,这里是夏季初,这里是年末,相当于12月末。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    这里是1月1号,年中接近夏季的时候,随后就是年末的数据,看起来有些杂乱,如果要计算趋势的话,也就是温度的局部平均值,或者说移动平均值。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    你要做的是,首先使v_0=0,每天,需要使用0.9的加权数之前的数值加上当日温度的0.1倍,即v_1=0.9v_0+0.1θ_1,所以这里是第一天的温度值。

    第二天,又可以获得一个加权平均数,0.9乘以之前的值加上当日的温度0.1倍,即v_2=0.9v_1+0.1θ_2,以此类推。

    第二天值加上第三日数据的0.1,如此往下。大体公式就是某天的v等于前一天v值的0.9加上当日温度的0.1。

    如此计算,然后用红线作图的话,便得到这样的结果。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    你得到了移动平均值,每日温度的指数加权平均值。

    看一下上一张幻灯片里的公式,v_t=0.9v_(t-1)+0.1θ_t,我们把0.9这个常数变成β,将之前的0.1变成(1-β),即v_t=βv_(t-1)+(1-β)θ_t

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    由于以后我们要考虑的原因,在计算时可视v_t大概是1/((1-β))的每日温度,如果β是0.9,你会想,这是十天的平均值,也就是红线部分。

    我们来试试别的,将β设置为接近1的一个值,比如0.98,计算1/((1-0.98))=50,这就是粗略平均了一下,过去50天的温度,这时作图可以得到绿线。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    这个高值β要注意几点,你得到的曲线要平坦一些,原因在于你多平均了几天的温度,所以这个曲线,波动更小,更加平坦,缺点是曲线进一步右移,因为现在平均的温度值更多,要平均更多的值,指数加权平均公式在温度变化时,适应地更缓慢一些,所以会出现一定延迟,因为当β=0.98,相当于给前一天的值加了太多权重,只有0.02的权重给了当日的值,所以温度变化时,温度上下起伏,当β 较大时,指数加权平均值适应地更缓慢一些。

    我们可以再换一个值试一试,如果β是另一个极端值,比如说0.5,根据右边的公式(1/((1-β))),这是平均了两天的温度。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    作图运行后得到黄线。

    吴恩达深度学习笔记(40)-指数加权平均数优化算法
    由于仅平均了两天的温度,平均的数据太少,所以得到的曲线有更多的噪声,有可能出现异常值,但是这个曲线能够更快适应温度变化。

    所以指数加权平均数经常被使用,再说一次,它在统计学中被称为指数加权移动平均值,我们就简称为指数加权平均数。通过调整这个参数(β),或者说后面的算法学习,你会发现这是一个很重要的参数,可以取得稍微不同的效果,往往中间有某个值效果最好,β为中间值时得到的红色曲线,比起绿线和黄线更好地平均了温度。

    现在你知道计算指数加权平均数的基本原理,下一个笔记中,我们再聊聊它的本质作用。

    展开全文
  • 移动平均数最简洁的算法

    千次阅读 2015-08-17 17:01:56
    不断地从command line读取数字,要求算最新出现的N个数字的平均数。 这个平均数的值是流动的,例如 * % java RunningAverage 4 * 2.0 4.0 6.0 2.0 2.0 2.0 2.0 3.0 * * 3.5 3.5 3.0 2.0 2.25 ...
  • 编写算法实现以平均值为界值的快速分类方法。 想要解决问题我们首先需要再次理解一下我们之前,选择第一个元素为界值的快速排序的方法:我们先设变量i = head , j = tail。然后有以下代码: while (i < j) { ...
  • 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例 1: 输入: [1,12,-5,-6,50,3], k = 4 输出: 12.75 解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 来源:力扣(LeetCode) ...
  • 不同平均数的比较;图片来源:维基百科 大概是最常见的数据分析任务 你有一组数字。你希望用更少的数字概括它们,最好是只用一个数字...我们通常所说的平均数是“算术平均数”,具体计算过程如前所述。我们称其为...
  • 不同平均数的比较;图片来源:维基百科 大概是最常见的数据分析任务 你有一组数字。你希望用更少的数字概括它们,最好是只用一个数字。因此,你将这组数字加起来,然后除以数字的数目。哇,你得到了“平均数”,没...
  • 指数加权平均数

    2020-08-07 15:02:57
    计算公式如下: 其中, θ_t:为第 t 天的实际观察值, V_t: 是要代替 θ_t 的估计值,也就是第 t 天的指数加权平均值, β: 为 V_{t-1} 的权重,是可调节的超参。( 0 < β < 1 ) 我们有这样一组气温...
  • 调和平均数的几何意义

    千次阅读 2019-03-07 10:10:25
    调和平均数的代数形式(通俗): 应用场景:样本自变量(身高)和因变量(胖瘦)的乘积相等的情况下,改变每个样本的因变量(胖瘦),而不改变因变量的总和(井宽),所得自变量为调和平均数。 上图也可以...
  • 基于Brandes算法给出了复杂网络中介中心性和平均最短路径长度的整合近似算法,通过理论分析和Rocketfuel项目实测数据的实验分析,验证了该整合算法能够快速有效地估计出复杂网络的介中心性和平均最短路径长度,...
  • C语言小技巧之如何求平均数

    千次阅读 2018-11-25 19:26:00
    //只要有一个是小数,算出来就是小数,所以用除就ok了 除运算中注意: 如果相除的 两个都是整数 的话,则 结果也为整数 ,小数部分省略,如8/3 = 2;而两中 有一个为小数 , 结果则为...
  • 多种方法求平均数

    千次阅读 2017-12-13 18:34:03
    求两个数的平均数最常用的方法就是(a+b)/2,不过这种方法很容易溢出,原因是由于整形数据存储中,以补码形式存储,整型的取值范围为: unsigned int :0~2^32-1 signed int : -2^31~2^31-1 所以当两个很大的数相加...
  • 平均数防止溢出

    千次阅读 2018-12-17 17:53:08
    求a与b的平均数,如何做到防溢出,并利用移位运算优化计算过程。
  • 基于平均值为枢轴的快速排序算法

    千次阅读 多人点赞 2019-09-08 10:06:23
    但是各种博客以及论文中对于基于平均值的快速排序的具体都闭口不谈,后来我用了大概两三个小时通过修改现有的快速排序代码得到了基于平均值的快速排序代码。这也是我的第一篇博客,希望大家支持,这也是我继续写下去...
  • 让用户输入一系列的正整数,最后输入-1表示输入结束,然后程序计算出这些数字的平均值,输出输入的数字的个数和平均数 变量->算法->流程图->程序 1)变量 一个记录读到的整数的变量 x平均数怎么算 只需要...
  • 算法——移动平均法

    千次阅读 2020-09-15 17:56:41
    算法应用 移动平均主要是根据往年数据对未来进行推演。 算法公式 一次移动平均 ...//得到第一个一次移动平均数 template<typename T> T Get_MovAver_first(T* a, int n) { T ret = 0; T* p
  • 该方案向下取整,不会产生上溢,且于方案三。 PS:C++中没有无符号右移,实现方法:int mid = ((unsigned)a + (unsigned)b)>>> 1; 方案三:b+(a-b)/2 或 b+(a-b)>>1; 无上溢风险。 方案四:(a&b)+((a...
  • 又叫线性选择算法,这是一种平均情况下时间复杂度为O(n)的快速选择算法,用到的是快速排序中的第一步,将第一个作为中枢,使大于它的所有放到它右边,小于它的所有放到它左边。下面是具体的算法步骤: 1,选择...
  • C#多个平均数计算

    千次阅读 2020-09-24 21:45:55
    我的C#学习技巧 今天我们来学习C#中平均值的计算方法: 1.当我们获得的数据较为简单或数量较少时,有... //计算这三个平均值. int a = 3778, b = 3779, c = 3777; int avg = (a + b + c) / 3; Console.WriteLi
  • 防脉冲干扰移动平均数字滤波器的C语言算法
  • 没啥事写的一个C++解最小步二阶魔方的程序,cpp 200多行,尽力写的比较精简,大多是格式化设计(函数列表等),可扩展性比较强,估计改个2~30行代码就能改成3阶魔方。 用的是广搜(BFS),效率算是比较高,平均...
  • 在上一篇文章单片机ADC采样算法---平均值采样中分析了平均值采样的使用,上篇文章中的平均值采样是连续采样100个数据,然后求平均值,这种方法存在一个问题,就是采集100个值之后,下一次又重新采集100个新的...
  • 滑动平均滤波算法

    千次阅读 2022-04-16 18:11:25
    因为参与计算的历史值个固定且内容不断前移覆盖更新,类似滑动的数据块窗口,因此成为滑动平均滤波算法。   假如采样6次,每次使用最近5个历史值与当前最新值求算数平均值,输出一个有效值;下次采样时再覆盖最...
  • 快速排序是一种经典的排序算法, 它的平均性能非常突出。针对快速排序在某些特殊情况下如数据已有序或重复数据较多时效率较低的问题进行了研究, 对三路快速排序进行改进, 使快速排序在特殊情况下也能保持较好的效率。...
  • 为了降低高效率视频编码(HEVC)的编码复杂度,提出一种新的快速模式判决算法。考虑到视频帧的纹理特性...实验结果表明,与原始的HEVC编码方法相比,高效率视频编码快速模式判决算法平均降低51%的编码复杂度,而编码比
  • bfptr算法(即中位的中位数算法

    万次阅读 多人点赞 2018-08-25 22:35:16
    BFPRT算法是解决从n个中选择第k大或第k小的这个经典问题的著名算法,但很多人并不了解其细节。本文将首先介绍求解这个第k小数字问题的几个思路,然后重点介绍在最坏情况下复杂度仍然为O(n)的BFPRT算法。 一 ...
  • 难度:★☆☆☆☆,经典问题:求数列的平均数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 208,950
精华内容 83,580
关键字:

平均数快速算法