Rozwiąż rekurencję


12

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

fa(n)=fa(n-1)+fa(n-logn)

5
Co otrzymasz, jeśli spróbujesz ? Wygląda na to, że otrzymasz dolną granicę 2 Ω ( n / log n ) . f(n)=2f(nlogn)2)Ω(n/logn)
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(nloglogn/logn)lognfa(n)(1+logn)fa(n-logn)n/logn . 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+logn)n/logn=2)O(nloglogn/logn)loglogn
mobius dumpling

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

Odpowiedzi:


14

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

fa(n)=2)Θ(nloglogn/logn) .

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 / loglogn

fa(n)=2)fa(n-logn)+fa(n-logn-1)++fa(n-2)logn)lognfa(n-logn) .
razy i otrzymujemy, że rozwiązaniem jest 2 Ω ( n log log n / log n ) .n/logn2)Ω(nloglogn/logn)

logn

fa(n)(logn+1)fa(n-logn) .
n/logn2)O(nloglogn/logn)
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.