前言
其实分享我写题目的过程也算是一种自我检讨,所以使用的方法可能不会是最完美的,还请各读者多多包涵...
题目
输入输出格式
sol.
这题题目有点难用文字看懂,我写的时候想超久,不过可以画成一个表格来看,例如我们输入
此为n=2的情况,每一次输入都要判断 n = 2、3、4、5、6 等五种情况的 MAPE 并选出最小值。
pseudocode
输入periodCut
、sale
表示一期的资料
建立阵列sales
存取各期资料、MAPEarray
存取n = 2、3、4、5、6时的 MAPE、ansArray
存取最後要输出的答案。
我在这边使用的方法为建立一个函数判断完各种情况的MAPE後再回到main function,不过我认为这不是最好的方法。 // 注1
void MAPE(int windowSize, int periodCut, const int sales[], int MAPEarray[], int ansArray[]);
宣告变数 total、now、min,分别代表 、现在的加总、目前为止的最小 MAPE 值。
for i in range n
total = 0.0 // 初始化
for j in range j=i ~ periodCut
now = 0.0 // 初始化
for k in range j-i ~ k<j
now += 第k期的资料 / float(i) // 将i转换为小数型态,除出来才会是小数
now += (第j期的资料 – now) / 第j期的资料
now 取绝对值
total += now
将 (total/(periodCut – i) * 100) 转换为int,并插入 MAPEarray
if 新加进去MAPEarray的这个数值 > min
min = 新加进的数
WindowSize = i
并将widowSize, min加入ansArray
接着回到main function中直接输出答案
注1:
float MAPE(int indowSize, int PeriodCut, const int sales[]);
此函数所回传的值为 n = 2 ~ 6 各情况的 MAPE,这个函数的工作基本上与前面void MAPE
函数无异,不过将最後比 MAPE 大小的部分移至 main function 中做。
在 main function 中跑一个 for 回圈:
for n = 2 ~ 6
呼叫MAPE函数
回传值有没有 > 目前最小的MAPE
最後输出答案
现在来学习CSS 如果说 HTML 是用来处理主要网页结构,CSS 就是来处理网页细节的。负责美化跟...
全球付Globalcash是虚拟信用卡,支持Visa/MasterCard。为了自己账户的安全,在境...
介绍: k-平均演算法(英文:k-means clustering,以下简称为 k-means )是...
Python - Python SimpleHTTPServerWithUpload 参考笔记 参考...
=x= 🌵 建立 News Manager - Content Page 後台页面 - 日历功能。 ...