CMakeLists.txt

project(aaa)
add_library(aaa SHARED aaa.cpp)
add_executable(bbb bbb.cpp)
target_link_libraries(bbb aaa)

aaa.h

#pragma once

#ifndef AAA_AAA_H
#define AAA_AAA_H
#endif class father
{
private:
public:
int *fabonacci(int n);
double *wMA(double *array, int *fabonacci, int arrayLen, int wMALen);
};

aaa.cpp

#include "aaa.h"
#include <iostream> using namespace std; int *father::fabonacci(int n)
{
if(30 >= n > 0)
{
int *array = new int[n];
switch(n)
{
case 1:
{
array[0] = 1;
cout << array[0] << endl;
break;
}
case 2:
{
array[0] = 1;
array[1] = 1;
cout << array[0] << endl;
cout << array[1] << endl;
break;
}
default:
{
array[0] = 1;
array[1] = 1;
cout << array[0] << endl;
cout << array[1] << endl;
for(int i = 2; i < n; i++)
{
array[i] = array[i - 1] + array[i - 2];
cout << array[i] << endl;
}
}
}
return array;
}
else
{
cout << "Error!\n" << endl;
return NULL;
}
} double *father::wMA(double *array, int *fabonacci, int arrayLen, int wMALen)
{
int n = wMALen;
double *wma = new double[arrayLen];
if(arrayLen >= wMALen >0)
{
int *pF = father::fabonacci(arrayLen);
while(arrayLen >= wMALen)
{
double sum = 0;
for(int i = wMALen - n; i < wMALen; i++)
{
sum = sum + array[i] * (*(pF + i));
}
wma[wMALen - 1] = sum / pF[arrayLen];
cout << "wma[" << wMALen - 1 << "] = " << wma[wMALen - 1] << endl;
wMALen++;
}
delete(pF);
return wma;
}
else
{
cout << "Error!\n" << endl;
return NULL;
}
}

bbb.cpp

#include "aaa.h"
#include <iostream> using namespace std; template <typename t> int getArrayLen(t &array)
{
return sizeof(array) / sizeof(array[0]);
} int main()
{
double array[] = {1, 2, 3, 4, 5, 6, 7, 8, 10, 9, 11, 12};
father child; int len = getArrayLen(array);
int *pF = child.fabonacci(len);
double *pWMA = child.wMA(array, pF, len, 3); delete(pF);
delete(pWMA); return 0;
}

C++ wMA 算法的更多相关文章

  1. C++ 以费波纳茨数列为权重的加权均值计算方法 wMA

    #pragma once #include <iostream> using namespace std; template <typename T> double *wMA( ...

  2. cmake 静态调用 c++ dll 的类的一个例子(Clion IDE)[更新1:增加1.模版的应用,2.ma 的算法]

    CMakeLists.txt project(aaa) add_library(aaa SHARED aaa.cpp) add_executable(bbb bbb.cpp) target_link_ ...

  3. 数据结构与算法之PHP排序算法(归并排序)

    一.基本思想 归并排序算法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,使每个子序列有序,再将已有序的子序列合并,得到完全有序的序列.该算法是采用分治法(Divid ...

  4. Python人工智能之路 - 第二篇 : 算法实在太难了有现成的直接用吧

    本节内容 预备资料: 1.FFmpeg: 链接:https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk 2.baidu-aip: pip ins ...

  5. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  6. 分布式系列文章——Paxos算法原理与推导

    Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资 ...

  7. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  8. 红黑树——算法导论(15)

    1. 什么是红黑树 (1) 简介     上一篇我们介绍了基本动态集合操作时间复杂度均为O(h)的二叉搜索树.但遗憾的是,只有当二叉搜索树高度较低时,这些集合操作才会较快:即当树的高度较高(甚至一种极 ...

  9. 散列表(hash table)——算法导论(13)

    1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...

随机推荐

  1. Jetty应用服务器的安装详解

    Jetty是一个开源的Servlet容器和应用服务器,它极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.WebSocket.OSGi.JMX.JNDI和JAAS.Jetty ...

  2. poj1417 带权并查集 + 背包 + 记录路径

    True Liars Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2713   Accepted: 868 Descrip ...

  3. Activity的四种launchMode

    来源:http://blog.csdn.net/liuhe688/article/details/6754323/ 我们今天要讲的是Activity的四种launchMode. launchMode在 ...

  4. pch文件的使用

    pch文件的应用场景:1.用来定义一些全局的宏2.用来导入一些全局都能访问的头文件(如果只需要让.m或者.mm文件访问到,不需要让.c文件访问到,那么需要把头文件写到#ifdef _OBJC_ #en ...

  5. 【bzoj2152】 聪聪可可

    http://www.lydsy.com/JudgeOnline/problem.php?id=2152 (题目链接) 题意 给出一棵n个节点的带权树,求有多少点对的距离是3的倍数. solution ...

  6. codeforces 723D: Lakes in Berland

    Description The map of Berland is a rectangle of the size n × m, which consists of cells of size 1 × ...

  7. JSP生命周期

    1.编译阶段:servlet容器编译servlet源文件,生成servlet类.观察一个JSP页面在第一次访问的时候会由servlet容器会生成.java文件,最终编译成.class字节码文件,如果打 ...

  8. Jenkins实现测试环境到生产环境一键部署(Windows)

    前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...

  9. CSS基础知识真难啊-background-渐变

    文章参考 http://www.zhangxinxu.com/wordpress/?p=727 http://www.uqu8.com/html/2014/html-css_1105/176.html ...

  10. iOS WebView调用JS的一个小坑

    假如调用一个函数,传入的参数为String,要以这样的格式传入: let resultStr="1234" self.webView.stringByEvaluatingJavaS ...