C++ 找到简单移动平均的程序

C++ 找到简单移动平均的程序

在这篇文章中,我们的目标是确定数组中给定值的简单移动平均。让我们快速了解一下简单移动平均的意思。

从数据在一定时间(t)内得出的平均值被称为简单移动平均。在典型的平均值中,简单移动平均值由于数据的变化而变化,但在这种平均值中,它也随时间而变化。在得到给定时间段t内的平均值之后,一些较早的数据被删除。当此过程继续时,我们再次获得新的平均值。因此,它使用了移动平均。这个简单移动平均有很多金融市场应用。

问题陈述

实现一个程序来获得简单移动平均。

方法

为了计算简单移动平均,我们必须确保所有指定的项目符合程序员的要求。此外,我们还必须确保总和和平均值被初始化为零,否则它们可能使用错误的值,结果可能不一致。

作为我们的下一个安全措施,我们将把平均值指定为浮点型或双精度型的数据。如果你是学生,你不必担心,但如果你决定在商业世界中使用这个程序,将会有数百万的计算。不考虑小数,答案无疑会给出,但结果会有很大不同。

让我们用一个例子来使问题更清晰,以便你能够理解。

解释

将一个整数数组作为输入。

输入:{1,2,3,4,5}

让我们取长度为2

计算:

因为我们取的长度为2,我们每次考虑两个连续的数字。

考虑1和2,相加1+2得到3。

这里得到的平均值是3/2,即1.5

考虑2和3,相加2+3得到5。

这里得到的平均值是5/2,即2.5

考虑3和4,相加3+4得到7。

这里得到的平均值是7/2,即3.5

考虑4和5,相加4+5得到9。

这里得到的平均值是9/2,即4.5

所有的平均值都被视为输出。

算法

给定一个数组时找到简单移动平均的算法如下所示。

步骤 1 :设定整数数组的大小

步骤 2 :输入数组的元素。

步骤 3 :将sum设为0,将movAvg设为0

步骤 4 :迭代两个for循环。

步骤 5 :打印得到的movAvg=sum/k的结果。

下面是一个用于查找给定数组的简单移动平均值的C程序。

示例

#include<stdio.h>
int main() {
   const int n = 10;  //set the array size
   float a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //input array elements
   int k = 2;    // set the length
   float sum = 0;
   float movAvg = 0;
//iterate the loop and check for the condition
   for (int i = 0; i <= ( n - k); i++) {
     sum = 0;            
     for (int j = i; j < i + k; j++) {
       sum += a[j];        
     }
     movAvg = sum / k;
   printf("Simple Moving Average : %.2f \n",movAvg); //print output 
   }
   return 0;
}

输出

执行时,会产生以下输出:

Simple Moving Average : 1.50 
Simple Moving Average : 2.50 
Simple Moving Average : 3.50 
Simple Moving Average : 4.50 
Simple Moving Average : 5.50 
Simple Moving Average : 6.50 
Simple Moving Average : 7.50 
Simple Moving Average : 8.50 
Simple Moving Average : 9.50

结论

同样地,我们可以通过输入数组的值来确定简单移动平均值。

本文解决了确定给定数组的简单移动平均值的挑战。提供了用于查找简单移动平均值的C编程代码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程