在图形中查找线性
Find linearity in a graph
我正在为一个项目做自动化,我得到的结果是图表的形式,其中我获取了性能结果。
现在我得到的性能结果通常与图表呈一条直线。
例如,假设列表中图表的结果可能是这样的:
10, 30,90,100, 150,200,250,300,350,400,450,800,1000,1500,2000,2010,2006,2004,2000,1900,1800,1700, 1600,1000,500,400,0.
如您所见,设备的性能开始提高,然后在某个点保持线性,并且随着故障开始下降。
我要取的点是直线
正如您在数字列表中看到的那样,我们看到从 (2000,2010,2006,2004,2000) 开始有一条直线。
我不需要任何代码或算法来解决这个问题....我不需要答案。如果有人能给我一个提示或一点线索,我会尽力完成剩下的工作。
首先决定你可以处理的绝对或相对公差,这决定了什么是直线。
然后遍历数组,检查一个点与下一个点的值,如果它们在公差范围内,则继续迭代,直到得到一个不在公差范围内的点,然后存储这些点。它们代表一条直线。
这个解决方案非常简单,并不完美,需要 O(n) 时间。
你是指常数还是线性?
如果你的意思是线性的:
为什么不取相邻值的差值并搜索一个接近常数的序列呢?
如果你的意思是常数:
为什么不取相邻值的差并搜索一个接近于 0 的序列?
我正在为一个项目做自动化,我得到的结果是图表的形式,其中我获取了性能结果。
现在我得到的性能结果通常与图表呈一条直线。
例如,假设列表中图表的结果可能是这样的: 10, 30,90,100, 150,200,250,300,350,400,450,800,1000,1500,2000,2010,2006,2004,2000,1900,1800,1700, 1600,1000,500,400,0.
如您所见,设备的性能开始提高,然后在某个点保持线性,并且随着故障开始下降。
我要取的点是直线
正如您在数字列表中看到的那样,我们看到从 (2000,2010,2006,2004,2000) 开始有一条直线。
我不需要任何代码或算法来解决这个问题....我不需要答案。如果有人能给我一个提示或一点线索,我会尽力完成剩下的工作。
首先决定你可以处理的绝对或相对公差,这决定了什么是直线。
然后遍历数组,检查一个点与下一个点的值,如果它们在公差范围内,则继续迭代,直到得到一个不在公差范围内的点,然后存储这些点。它们代表一条直线。
这个解决方案非常简单,并不完美,需要 O(n) 时间。
你是指常数还是线性? 如果你的意思是线性的: 为什么不取相邻值的差值并搜索一个接近常数的序列呢? 如果你的意思是常数: 为什么不取相邻值的差并搜索一个接近于 0 的序列?