实在没找到哪里有错误,但是实际计算出来的画的线与公式里写WMA(H,50)不一致,请问算法哪里有错?应如何修改?
以下内容为程序代码:
1 __declspec(dllexport) int WINAPI MYYGDC1(CALCINFO* pData)
2 {
3 if (CONFIRMLOCKINFO() == 0) //加密狗检测不合法
4 return 0;
5 if (pData->m_pfParam1 && //参数1有效
6 pData->m_nParam1Start >= 0 //参数1为序列数
7 )
8 {
9 const float* pValue = pData->m_pfParam1; //参数1
10 int nFirst = pData->m_nParam1Start; //有效值起始位
11 float fParam = 50; //参数2
12 int nPeriod = (int)fParam;
13 if (nFirst >= 0 && nPeriod > 0)
14 {
15 float fTotal;
16 int i, j;
17 for (i = nFirst + nPeriod - 1; i < pData->m_nNumData; i++)
18 {
19 fTotal = 0.0f;
20 float fSum = 0.0f;
21 for (j = 0; j < nPeriod; j++) //累加
22 fTotal += (pValue[i - j] * (j + 1));
23 for (j = 1; j <= nPeriod; j++)
24 fSum += j;
25
26 pData->m_pResultBuf[i] = fTotal / fSum;//平均
27 }
28 return nFirst + nPeriod - 1;
29 }
30 }
31 }
[此贴子已经被作者于2017-3-6 11:06:11编辑过]