我想知道在给定时间段内求最大增长率的算法
假设我们有八(N)个数据点,如下所示
list_x = [84,59,52,71,62,82,45,50]
def find_max(list_x):
# return the L index, H index, ratio
# take list_x as an example, L index: 3(52), H index: 6(82), ratio: 82/52
# should return (3, 6, 1.57)
return L,H,dy/dx
一种简单的方法是通过O(N*N),存储比率dicts,然后按比率排序。 有什么有效的算法吗?谢谢
使用Numpy将嵌套循环推送到C
计算每个点与所有其他点之间的差值
计算所有这些差异的dy/dx。这假设x值是连续且均匀分布的
找到最大dy/dx的索引,并使用它们来获得产生它的值
中间数组-值在对角线上反映
正如我在一篇评论中提到的,看起来您是在寻找
H/L
而不是dy/dh
,因为您的预期结果是(3, 6, 1.57)
。假设您确实想要执行H/L
,那么您可以尝试以下操作:这里的复杂性是
O(N)
相关问题 更多 >
编程相关推荐