将序列缩减为更小序列的算法(针对特定功能)

Algorithm for reducing sequence into smaller sequence (for specific function)

我有一个 (X,Y) 对序列:(X_0,Y_0)....(X_N,Y_N)

我在每个时间步向序列添加一对新的 t

在遥远的将来的某个时候,t_n,我想用一个函数将序列化简为数字。

该函数采用对序列和输入 Z:

f(Z) = ((1/X_0)-(1/Z))*Y_0 + ((1/X_1)-(1/Z))*Y_1 + ... + ((1/X_N)-(1/Z))*Y_N

我的问题:

我不想存储每一对这些序列。这需要太多 space.

我想将序列缩减为某种增量表示,这样我就可以

我该怎么做?

f = 
  (1/X_0-1/Z)*Y_0 + (1/X_1-1/Z)*Y_1 = 
  (Y_0/X_0 - Y_0/Z) + (Y_1/X_1 - Y_1/Z) =
  Y_0/X_0 - Y_0/Z + Y_1/X_1 - Y_1/Z =
  Y_0/X_0 + Y_1/X_1 - Y_0/Z - Y_1/Z =
  (Y_0/X_0 + Y_1/X_1) - (Y_0 + Y_1) / Z = 
  A - B / Z

A = SUM(Y_i / X_i)
B = SUM(Y_i)

所以你可以在任何时刻增量更新A和B并计算结果