找到一个没有多个和的除法的算法

时间:2014-09-30 12:57:10

标签: algorithm sum product

我有一个数量e由以下多个总和和产品给出:

enter image description here

其中enter image description hereenter image description here是向量,t = 0,1,...,N-1。

例如,如果N = 4,则对应于i = 2的量是

enter image description here

enter image description here

enter image description here

enter image description here

a和b的元素可以任意小。因此,我想避免分歧。问题是,我不能为我的生活制作一个算法来计算这个,即使是以最直接的方式(虽然速度是一个问题,所以我想要一个快速的)。有什么指针吗?

1 个答案:

答案 0 :(得分:1)

我认为你可以使用动态编程在O(t.N)周期中计算出来。

这个想法是计算一个与你的e(i,t)完全相同的数量f(i,t,n),除了第一个和N被n代替。

如果t == 0,我们将f(i,t,0)定义为1,否则定义为0。

我们可以通过考虑索引n处的位置是“a”,“b”还是跳过的情况来计算基于先前值的f(i,t,n)。

If n==i
    f(i,t,n)=f(i,t,n-1)
else
    f(i,t,n)=f(i,t,n-1).a_n+f(i,t-1,n-1).b_n

答案由e(i,t)= f(i,t,N)给出。

我们将为每个t和n选择计算中间值,因此总体复杂度为O(tN)。

例如,

f(2,0,1) = a_1
f(2,0,2) = a_1.a_2
f(2,0,3) = a_1.a_2.a_3
f(2,1,1) = b_1
f(2,1,2) = f(2,1,1).a_2 + f(2,0,1).b_2 = b_1.a_2+a_1.b_2