Решите повторение


12

Как я могу решить следующую рекуррентную связь?

f(n)=f(n−1)+f(n−log⁡n)

5
Что вы получите, если вы попытаетесь ? Похоже, что вы получите нижнюю границу 2 Ω ( n / log n ) . f(n)=2f(n−log⁡n)2Ω(n/log⁡n)
— Чандра Чекури

2
@ChandraChekuri О, это здорово! И есть верхняя граница : мы используем журнал повторений n раз и получаем, что f ( n ) ≤ ( 1 + log n ) f ( n - log n ) . Затем мы применяем это n / log n раз и получаем f ( n ) ≤ ( 1 + log n2O(nlog⁡log⁡n/log⁡n)log⁡nf(n)≤(1+log⁡n)f(n−log⁡n)n/log⁡n . Таким образом, разрыв между верхней и нижней границами составляет только log log n в показателе степени. На самом деле этого достаточно для моих целей, но я оставлю вопрос открытым, если кто-то захочет и сможет сократить разрыв. Большое спасибо, Чандра! f(n)≤(1+log⁡n)n/log⁡n=2O(nlog⁡log⁡n/log⁡n)log⁡log⁡n
— клецки мобиуса

4
Ну, тот же трюк дает , поэтому f ( n ) = 2 Θ ( n log log n / log n ) . f(n)≥(log⁡n)f(n−2log⁡n)f(n)=2Θ(nlog⁡log⁡n/log⁡n)
— Эмиль Йержабек

Ответы:


14

f(n)=2Θ(nlog⁡log⁡n/log⁡n) .

log⁡n

f(n)=2f(n−log⁡n)+f(n−log⁡n−1)+…+f(n−2log⁡n)≥log⁡n⋅f(n−log⁡n) .
n/log⁡n2Ω(nlog⁡log⁡n/log⁡n)

log⁡n

f(n)≤(log⁡n+1)⋅f(n−log⁡n) .
n/log⁡n2O(nlog⁡log⁡n/log⁡n)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.