Risolvi la ricorrenza


12

Come posso risolvere la seguente relazione di ricorrenza?

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

5
Cosa ottieni se provi ? Sembra che otterrai un limite inferiore di . f(n)=2f(n−log⁡n)2Ω(n/log⁡n)
— Chandra Chekuri,

2
@ChandraChekuri Oh, fantastico! E c'è un limite superiore di : usiamo la ricorrenza volte e otteniamo quella . Quindi applichiamo questo volte e otteniamo . Quindi lo spazio tra il limite superiore e il limite inferiore è solo nell'esponente. Questo in realtà è abbastanza per i miei scopi, ma lascerò aperta la domanda nel caso in cui qualcuno voglia ed è in grado di colmare il divario. Grazie mille, Chandra! 2O(nlog⁡log⁡n/log⁡n)log⁡nf(n)≤(1+log⁡n)f(n−log⁡n)n/log⁡nf(n)≤(1+log⁡n)n/log⁡n=2O(nlog⁡log⁡n/log⁡n)log⁡log⁡n
— gnocco di mobius il

4
Bene, lo stesso trucco dà , quindi . f(n)≥(log⁡n)f(n−2log⁡n)f(n)=2Θ(nlog⁡log⁡n/log⁡n)
— Emil Jeřábek 3.0

Risposte:


14

@Chandra, @Emil e io abbiamo risolto la domanda nei commenti. La soluzione è

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

Per vedere il limite inferiore, applica la definizione di ricorrenza volte, per ottenere Usa questa disuguaglianza volte e scopriamo che la soluzione è .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)

Per ottenere il limite superiore, utilizzare la ricorrenza volte e ottenere quella Usa questa disuguaglianza volte e scopriamo che la soluzione è .log⁡n

f(n)≤(log⁡n+1)⋅f(n−log⁡n) .
n/log⁡n2O(nlog⁡log⁡n/log⁡n)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.