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编程代码。