C++ 以费波纳茨数列为权重的加权均值计算方法 wMA
#pragma once #include <iostream> using namespace std; template <typename T> double *wMA(T &tArray, int iWMALen) // 应用模版数据类型 typename T 引用外部数组 tArray
{
int iArrayLen = sizeof(tArray) / sizeof(tArray[]); // 计算传入数组长度 = 总数组字节大小 / 首元素字节大小
cout << "Length of import array is: " << iArrayLen << endl;
cout << "Import array is:";
for(int i = ; i < iArrayLen; i++)
{
if(i == )
cout << "[" << tArray[i] << " ";
else if(i == iArrayLen - )
cout << tArray[i] << "]" << endl;
else
cout << tArray[i] << " ";
}
if(iArrayLen >= iWMALen && iWMALen > ) // 计算前提,数组长度不能小于均值要计算的天数
{
int *pWMAW = new int[iWMALen]; // 把费波纳茨数列个值做权重
int iSumW = ; // 费波纳茨数列的算术和
switch(iWMALen)
{
case :
{
cout << "Creating fabonacci numbers:" << endl;
pWMAW[] = ;
cout << "[0] = " << pWMAW[] << endl;
iSumW = pWMAW[];
break;
}
case :
{
cout << "Creating fabonacci numbers:" << endl;
pWMAW[] = ;
pWMAW[] = ;
cout << "[0] = " << pWMAW[] << endl;
cout << "[1] = " << pWMAW[] << endl;
iSumW = pWMAW[] + pWMAW[];
break;
}
default:
{
cout << "Creating fabonacci numbers:" << endl;
pWMAW[] = ;
pWMAW[] = ;
cout << "[0] = " << pWMAW[] << endl;
cout << "[1] = " << pWMAW[] << endl;
iSumW = pWMAW[] + pWMAW[];
for(int i = ; i < iWMALen; i++)
{
pWMAW[i] = pWMAW[i - ] + pWMAW[i - ]; // 费波纳茨通项公式算法
cout << "[" << i << "] = " << pWMAW[i] << endl;
iSumW += pWMAW[i];
}
break;
}
}
cout << "The sum of those fabonacci numbers is: " << iSumW << endl;
int n = iWMALen; // 固定均值计算天数,因为后面这个 iWMALen 会逐步增加变动
double *pWMAV = new double[iArrayLen]; // 用于保存均值
cout << "The wMA values are:" << endl;
while(iWMALen <= iArrayLen)
{
double iSumV = ;
for(int i = iWMALen - n, j = ; i < iWMALen; i++, j++)
{
iSumV += tArray[i] * pWMAW[j];
}
pWMAV[iWMALen - ] = iSumV / iSumW; // 算法 wMA = (数组个值 * 费波纳茨数列个值权重)的前 n 项和 / 费波纳茨数列加和
cout << "wMA[" << iWMALen - << "] = " << pWMAV[iWMALen - ] << endl;
iWMALen++;
}
delete(pWMAW); // 该指针作用到此为止,释放指针
cout << "Remeber to delete the return pointer of wMA(...)!\n" << endl; // 函数返回指针,提示后面删除堆中新建指针
return pWMAV;
}
else
{
cout << "Error!\n" << endl;
return NULL;
}
} int main()
{
int array[] = {, , , , , , , };
double *p = wMA(array, );
delete(p);
cin.get();
return ;
}
C++ 以费波纳茨数列为权重的加权均值计算方法 wMA的更多相关文章
- CodeForces 450B Jzzhu and Sequences 费波纳茨数列+找规律+负数MOD
题目:Click here 题意:给定数列满足求f(n)mod(1e9+7). 分析:规律题,找规律,特别注意负数取mod. #include <iostream> #include &l ...
- hdu 5459 Jesus Is Here (费波纳茨递推)
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)Total Submission ...
- 分巧克力【来源:CSDN线上编程挑战赛】——递归,费波那奇数列,迭代
/*====================================================================== 儿童节快到了,班长想要给班上的每个同学给一个巧克力, ...
- C语言 递归 汉诺塔问题 最大公约数问题
函数不能嵌套定义,但能嵌套调用(在调用一个函数的过程中再调用另一个函数) 函数间接或直接调用自己,称为递归调用 汉诺塔问题 思想:简化为较为简单的问题 n=2 较为复杂的问题,采用数学归纳方法分析 ...
- 剑指Offer——滴滴笔试题+知识点总结
剑指Offer--滴滴笔试题+知识点总结 情景回顾 时间:2016.9.18 15:00-17:00 地点:山东省网络环境智能计算技术重点实验室 事件:滴滴笔试 总体来说,滴滴笔试内容体量不算多, ...
- java程序设计课程实验报告1
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:陈都 学号:20135328 成绩: 指导 ...
- golang之数组
1.数组:同一种数据类型的固定长度的序列. 2.数组定义:var a [len]int,例如:var a [5]int 3.长度是数组类型的一部分,因此,var a[5] int 和 var a[10 ...
- Javascript函数式编程要掌握的知识点讲解
一:理解call和apply 及arguments.callee ECMAScript3给Function的原型定义了两个方法,他们是Function.prototype.call 和 Functio ...
- [No000019A]【波浪理论精典教学课程】
波浪理论的产生和发展 拉尔夫·纳尔逊·艾略特(Ralph Nelson Elliott ),是波浪理论的创始人.1871年7月28日出生在美国密苏里州堪萨斯市的玛丽斯维利镇Marysville ...
随机推荐
- 从 MySQL+MMM 到 MariaDB+Galera Cluster : 一个高可用性系统改造
很少有事情比推出高可用性(HA)系统之后便经常看到的系统崩溃更糟糕.对于我们这个Rails运行机的团队来说,这个失效的HA系统是MySQL多主复制管理器(MMM). 我们已经找寻MMM的替代品有一段时 ...
- 【BZOJ 2115】【WC 2011】Xor
计算1到n的一条路径使得路径上的值xor和最大. 先任意走一条路径计算xor和,然后dfs的时候处理出所有的环的xor和,这样对于所有的环的xor和求线性基,在任意走出的路径的xor和上贪心即可. 正 ...
- bootstarp风格的toggle效果分享
最近在写项目的时候想要一个这样的效果: 我知道这个效果在 flat-ui中有, 但是我又不想引用一整个flat-ui; 这个效果依赖html5的transition, 所以浏览器兼容成问题: 从fla ...
- JS模块化编程之加载器原理
世面上有好多JavaScript的加载器,比如 sea.js, require.js, yui loader, labJs...., 加载器的使用范围是一些比较大的项目, 个人感觉如果是小项目的话可以 ...
- java基础2.0:Object、Class、克隆、异常编程
Java编程中两个重要的类Object 和 Class及java异常编程 (1)是所有Java类(API提供的类.自定义类)的最终父类. (2)作用:在JVM管理对象中的过程中,有一套统一的类型检查和 ...
- js学习笔记4----数据类型
1.ECMAScript:标准.核心 JS中的数据类型:数字(NaN).字符串(空隔也会占据长度).布尔值(true和false).函数.对象(obj.[].{}.null).undefined. t ...
- ftp,http,https有啥区别?
[ftp与http的区别?] HTTP(Hyper Text Transmission Protocol)是超文本传输协议,FTP(FileTransferProtocol)是文件传输协议! HTTP ...
- PL/SQL Developer连接本地64位Oracle数据库
1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...
- oracle 10g 安装时字符集的选择,和后边的修改
先用system和密码登陆SQLPLUS,然后: 1.用sys登录到oracle中 connect sys/密码 as sysdba; (能直接以sys登陆到sqlplus吗?)2.开始修改编码 sh ...
- Andorid视觉新冲击-Material design语言
[写在前面] google在2014年 I/O大会上推出了一种新的设计设计语言—Material design,这种设计语言语言旨在为手机.平板电脑.台式机和“其他平台”提供更一致.更广泛的“外观和感 ...
