Résoudre la récurrence


12

Comment résoudre la relation de récurrence suivante?

f(n)=f(n1)+f(nlogn)

5
Qu'obtenez-vous si vous essayez ? Il semble que vous obtiendrez une borne inférieure de 2 Ω ( n / log n ) . f(n)=2f(nlogn)2Ω(n/logn)
Chandra Chekuri du

2
@ChandraChekuri Oh, c'est génial! Et il y a une limite supérieure de : nous utilisons le log de récurrence n fois, et obtenons que f ( n ) ( 1 + log n ) f ( n - log n ) . Ensuite, nous appliquons ce n / log n fois et obtenons f ( n ) ( 1 + log n2O(nloglogn/logn)lognf(n)(1+logn)f(nlogn)n/logn . Ainsi, l'écart entre la borne supérieure et la borne inférieure n'est que log log n dans l'exposant. C'est en fait suffisant pour mes besoins, mais je vais laisser la question ouverte au cas où quelqu'un le voudrait et serait en mesure de combler l'écart. Merci beaucoup, Chandra! f(n)(1+logn)n/logn=2O(nloglogn/logn)loglogn
mobius dumpling

4
Eh bien, la même astuce donne , donc f ( n ) = 2 Θ ( n log log n / log n ) . f(n)(logn)f(n2logn)f(n)=2Θ(nloglogn/logn)
Emil Jeřábek

Réponses:


14

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

logn

f(n)=2f(nlogn)+f(nlogn1)++f(n2logn)lognf(nlogn) .
n/logn2Ω(nloglogn/logn)

logn

f(n)(logn+1)f(nlogn) .
n/logn2O(nloglogn/logn)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.