我正在做一个项目,试图创建一个函数,通过每次只给它一个元素来检测增加或减少的趋势,因为我在开始时无法访问所有的值
是这样的:
第一次迭代:
def detect_trend(arr[0], k, r, q):
return array_upward_trend, array_downward_trend
第二次迭代:
def detect_trend(arr[1], k, r, q):
return array_upward_trend, array_downward_trend
等等
{k
元素时,才会形成趋势。虽然如果趋势已经开始形成,并且在q
元素之后,我们给函数赋予值arr[i]
,但是如果该值是一个重复的值,或者是一个在给定给函数的前一个元素arr[i-1]
的r
小范围内的元素,那么它不会中断趋势的创建
例如,我有一个数组
arr=[72 92 42 130 131 412 412 512 345 301 257 101 101 65 72 87 89 80 76 76 75 72 73]
len(arr)
迭代后的输出将是
array_upward_trend=[[42 130 131 412 412 512],[65 72 87 89]]
array_downward_trend=[[512 345 301 257 101 101 65], [89 80 76 76 75 72 73]]
k=4
、q=3
和r=0.015
(r
在本例中表示范围为1.5%)
我没能做到这一点,又一次从零开始。我真的很感激任何帮助
谢谢
首先,欢迎来到stackoverflow。 其次,下一次你可能想问不同的问题,因为这个任务有很多子任务。这意味着其他在这里寻求帮助的人很可能会跳过这篇文章,从而降低回答的价值。因此,我建议您将复杂的任务拆分为较小的任务
下面的代码应该可以工作,但还不是很有效,但可能会给您一个想法
怎么去那里? 首先,您可能希望将复杂问题拆分为一系列简单问题。 然后你开始一个接一个地解决它们,然后把它们合并起来。 我的做法如下:
首先,做一个可能是最难的任务,因为如果你失败了,其他任务就无关紧要了。这里是一般的趋势检测
相关问题 更多 >
编程相关推荐