Rozwiąż rekurencję


12

Jak mogę rozwiązać następującą relację powtarzalności?

fa(n)=fa(n-1)+fa(n-log⁡n)

5
Co otrzymasz, jeśli spróbujesz ? Wygląda na to, że otrzymasz dolną granicę 2 Ω ( n / log n ) . f(n)=2f(n−log⁡n)2)Ω(n/log⁡n)
— Chandra Chekuri

2
@ChandraChekuri Och, to świetnie! I jest górna granica : używamy log rekurencji n razy i otrzymujemy f ( n ) ≤ ( 1 + log n ) f ( n - log n ) . Następnie stosujemy n / log n razy i otrzymujemy f ( n ) ≤ ( 1 + log n2)O(nlog⁡log⁡n/log⁡n)log⁡nfa(n)≤(1+log⁡n)fa(n-log⁡n)n/log⁡n . Tak więc różnica pomiędzy górnymi i dolnymi związany jest związany tylko log log n w wykładniku. To właściwie wystarcza do moich celów, ale pozostawię pytanie otwarte, na wypadek, gdyby ktoś chciał i był w stanie wypełnić lukę. Dziękuję bardzo, Chandra! fa(n)≤(1+log⁡n)n/log⁡n=2)O(nlog⁡log⁡n/log⁡n)log⁡log⁡n
— mobius dumpling

4
Cóż, ta sama sztuczka daje , więc f ( n ) = 2 Θ ( n log log n / log n ) . fa(n)≥(log⁡n)fa(n-2)log⁡n)fa(n)=2)Θ(nlog⁡log⁡n/log⁡n)
— Emil Jeřábek

Odpowiedzi:


14

@Chandra, @Emil i ja rozwiązaliśmy pytanie w komentarzach. Rozwiązaniem jest

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

Aby zobaczyć dolną granicę, zastosuj definicji rekurencji n razy, aby uzyskać f ( n ) = 2 f ( n - log n ) + f ( n - log n - 1 ) + … + f ( n - 2 log n ) ≥ log n ⋅ f ( n - log n ) . Użyj tej nierówności n / loglog⁡n

fa(n)=2)fa(n-log⁡n)+fa(n-log⁡n-1)+…+fa(n-2)log⁡n)≥log⁡n⋅fa(n-log⁡n) .
razy i otrzymujemy, że rozwiązaniem jest 2 Ω ( n log log n / log n ) .n/log⁡n2)Ω(nlog⁡log⁡n/log⁡n)

log⁡n

fa(n)≤(log⁡n+1)⋅fa(n-log⁡n) .
n/log⁡n2)O(nlog⁡log⁡n/log⁡n)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.