如何检查一系列数字在C++中是否有增加/减少的趋势

INE*_*ile 4 c++ int vector trend

检查一系列数字是否有增加或减少趋势的最佳方法是什么?

我知道我可以选择序列的第一个和最后一个值,并检查它们的区别,但我想要一个更强大的检查.这意味着我希望能够在大多数递减的序列中容忍少数增加的值,反之亦然.

更具体地说,数字存储为

vector<int> mySequence;
Run Code Online (Sandbox Code Playgroud)

关于我正在处理的数字序列的更多细节:

  • 序列中的所有数字具有相同的数量级.这意味着不会出现如下序列:[45 38 320 22 12 6].
  • 通过下降趋势,我的意思是序列中的大多数或所有数字都小于前一个.(相反的情况适用于上升趋势).因此,以下顺序被视为下降:[ 45 42 38 32 28 34 26 20 12 8 48]

Kri*_*ato 8

我会累计增加的数量与减少的数量,这可以让你知道是否存在增加或减少的整体趋势.

  • 我在这里看到变种.1)用strarting值累计每个数字的差异.2)积累每个连续对的差异.什么是最好的选择? (4认同)
  • 如果需要更加防止故障,请在从原始数据集计算的运行平均值上执行此操作.这样你可以防止像+10 -1 -1 +8 -1 +9 -1 +12 -2 -1这样的恶意序列在"减少"时出现,而事实上它们正在增加. (2认同)