首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算商品价格波动的算法

计算商品价格波动的算法
EN

Stack Overflow用户
提问于 2017-09-07 13:00:28
回答 1查看 143关注 0票数 0

我试图设计一个算法来计算一种商品的价格波动有多大。

我希望这样做的方法是,如果一种商品的价格不断上涨和下降,它的分数应该比商品的价格逐渐上涨,然后迅速下跌时高。

这里是我的意思的一个例子:

商品A: 1 -> 2 -> 3 -> 2 -> 1 -> 3 -> 4 -> 2 -> 1

商品B: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 2

商品C: 1 -> 2-> 3 -> 4 -> 5 -> 4 -> 3 -> 2 -> 1

大宗商品A有一个“波动”的模式,它的价格上升和下降的基础上有规律。

商品B有一个“悬崖”的模式,价格逐渐上升,然后急剧下降。

商品C有一种“山”式的模式,即价格逐渐上涨,然后逐渐下降。

A应该得到最高的排名,其次是C,其次是B。商品价格跟随的波动模式越多,它应该拥有的排名就越高。

对算法有什么建议吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 15:57:21

我的方法是这样的。

对于我的算法,我正在考虑上面的例子。

代码语言:javascript
复制
A: 1 -> 2 -> 3 -> 2 -> 1 -> 3 -> 4 -> 2 -> 1

B: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 2

C: 1 -> 2 -> 3 -> 4 -> 5 -> 4 -> 3 -> 2-> 1

现在我将压缩这些列表,我的意思是取一个递增或递减序列的起始值和结束值。

所以,在压缩列表之后,会出现这样的情况。

代码语言:javascript
复制
A: 1 -> 3 -> 1 -> 4 -> 1
B: 1 -> 8 -> 2
C: 1 -> 5 -> 1

当它完成后,我取i和i+1元素之间的差,然后取平均值,然后根据平均值给它们排序。

所以I元素和i+1元素之间的区别如下所示

代码语言:javascript
复制
      2    2     3      3
A: 1 --> 3 --> 1 --> 4 --> 1  

      7     6
B: 1 --> 8 --> 2

     4      4
C: 1 --> 5 --> 1

现在让我们把这个差额加起来,取平均值。

代码语言:javascript
复制
A: (2+2+3+3)/4 = 2.5
B: (7+6)/2 = 6.5
C: (4+4)/2 = 4

现在我们可以根据这个平均值来分配等级

代码语言:javascript
复制
A < C < B

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46097050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档