Bir akışta numaralar aldığımızı varsayalım. Her sayı alındıktan sonra , ağırlıkların her zaman aynı, ancak keyfi olduğu son sayılarının ağırlıklı bir toplamının hesaplanması gerekir.
Hesaplamaya yardımcı olacak bir veri yapısını korumamıza izin verilirse bu ne kadar verimli bir şekilde yapılabilir? den daha iyi yapabilir miyiz , yani bir sayı her alındığında toplamı yeniden hesaplayabilir miyiz?
Örneğin: ağırlıkları varsayalım . Bir noktada son listesine sahip numaraları ve ağırlıklı toplamı .
Başka bir sayı, zaman , alınan olduğu için, elde etmek için listeyi güncelleştirmek ve hesaplamak için gereken .
FFT Kullanarak Dikkat Edilmesi Gerekenler Bu sorunun özel bir durumu Hızlı Fourier Dönüşümü kullanılarak verimli bir şekilde çözülebilir görünmektedir. Burada, tartılmış toplamları N'nin katları olarak hesaplıyoruz . Başka bir deyişle, N sayıları alırız ve ancak o zaman karşılık gelen N ağırlıklı toplamları hesaplayabiliriz . Bunu yapmak için, N - 1 geçmiş sayıya (toplamları zaten hesaplanmış olan) ve N yeni sayıya, toplam 2 N - 1 sayıya ihtiyacımız var.
Giriş numaraları bu vektör, ve ağırlık vektörü ise polinom katsayıları tanımlayan ve katsayılı, ters, ürün görüyoruz bir polinomdur ile arasındaki katsayıları tam olarak aradığımız ağırlıklı toplamlardır. Bunlar FFT giriş Θ ( N ∗ log) kullanılarak hesaplanabilir süresi, bu da bizegirdi sayısı başınaortalamasüresi verir.
Ağırlıklı toplam verimli bir şekilde hesaplanır olması gereklidir, çünkü, belirtildiği gibi, ancak sorun çözüm değildir her yeni bir numara alındıktan sonra - hesaplamayı gecikme olamaz.