是否有一种编程方法来查找系列的开始和结束



我有一个等间距的数字,如下所示:

x 1 2 3 4 y

我不知道开始值和结束值xy. x可以大于y,反之亦然。我所知道的只是中间值的值及其在列表中的顺序,即 1的索引是1(x的索引是0(,2的索引是2,依此类推。

我也知道中间有多少个数字,所以在这种情况下是 4。

有没有办法制定这个,以便我可以使用这些信息找到xy

编辑: 更多信息:

x != y

x > yy > x

该程序在给定请求的项目数的情况下,使用 xy 生成介于两者之间的数字。因此,从 x 到 y 的线性插值,对每个值使用相同的增量。

如果我理解正确的话,你想要线性外推之类的东西。试试这个:

def get_xy(values):
    assert(len(values) >= 2)
    #(v1) use the first gain
    m = values[1] - values[0]
    #(v2) calculate the mean-gain
    #     (avg of v[i+1]-v[i])
    m = sum(float(x-y) for x,y in zip(values[1:], values[:-2])) / (len(values) - 1)
    return (values[0] - 1*m, values[-1] + 1*m)
print get_xy([ 1, 2, 3, 4])
print get_xy([-1,-2,-3,-4])
x,y = get_xy([ 1, 2, 3, 4])
print x,y # if you are unfamilar with tuples

v(1)更胖,但只有在每个元素都按相同的值递增/递减时才起作用(如果a是你的序列,则a(n+1) - a(n) == a(n+2) - a(n+1)所有n(。 v(2)将计算所有元素的平均增益。请注意,这些值被强制转换为浮点数。

相关内容

  • 没有找到相关文章

最新更新