2012-11-12 64 views
3

可能重複:
Fast convolution algorithm計算RES [I + J] = A [1] * B在NLG(N)[D]

我有兩個數組a和b的N長度。我想計算的結果數組

res[i+j] += a[i]*b[j] 

是否有可能比N^2更快地計算這個時間使用FFT或類似的東西。我看到這個問題已經1D Fast Convolution without FFT,但我不知道如何使用FFT做到這一點。

EG: A=[1,2,3],B[2,4,6] 
res[3] = A[1]*B[2]+A[2]*B[1] 

在此先感謝

+0

你能舉一個例子來澄清這個問題嗎?假設有幾對索引(i,j)使a [i] + b [j]爲10. res [10]的正確值是多少? –

+0

根據需要完成。對不起之前的錯誤。 – Shadow

+0

@ HOTPOW2:你知道我怎麼能概括我的情況。 – Shadow

回答

1

從我瞭解你想要的FFT算法。 here你有這個算法的實現,也是如何實現FFT算法的一個很好的解釋。

+0

有什麼機會可以告訴我如何在我的情況下使用它?謝謝 – Shadow

+0

我很樂意給你一個100%確定的正確答案。但我猜測你使用這個鏈接的公共double [] multiply(double [] p1,double [] p2)http://www.cs.sjsu.edu/faculty/smithj/oldclass/155f07/solutions/a4/ FFT.java。你必須做一些像res乘(a,b);但你必須閱讀並嘗試理解以確定。 – dreamcrash

相關問題