算法——移动平均法

移动平均法预测

算法

移动平均法是用一组最近的实际数据值来预测未来一期或几期内公司产品的需求量、公司产能等的一种常用方法。移动平均法适用于即期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动,是非常有用的。

算法公式

一次移动平均

在这里插入图片描述

一次移动平均代码实现

#include<iostream>
#include<cstdlib>

using namespace std;

/*
* a为需要输出的数据数组
* n为移动间隔
* t为期数
*/

//得到第一个一次移动平均数
template<typename T>
T Get_MovAver_first(T* a, int n)
{
	T ret = 0;
	T* p = a;
	
	for(int i = 0; i < n; i++)
	{
		ret += *p;
		p++;
	}
	return (ret / n);
}

//得到下一个一次移动平均数
template<typename T>
T Get_MovAver_next(T M,T* a1,T* a2,int n)
{
	return (M + (*a1 - *a2) / n)
}

//得到第n个一次移动平均数
template<typename T>
T Get_MovAver_next_t(T* a, int n, int t, int size)
{
	if(t + 1 > size) exit(0);
	T M = Get_MovAver_first(a, n);
	T* p = a; p++;
	
	for(int i = t-n; i < t; i++)
	{
		M = Get_MovAver_next(M, p-1, p+1, n);
		p++;
	}
}

二次移动平均

在这里插入图片描述

二次移动平均代码实现

#include<iostream>

using namespace std;
//思路就是先生成一次移动平均的数组
T Get_MovAver_D(T M1, T M2, int n,int t)
{
	T a = 2 * M1 - M2;
	T b = 2 * (M1 - M2)/(n -1);
	
	return (a + b*t);
}

参考文献

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenmingik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值