Löse die Wiederholung


12

Wie kann ich die folgende Wiederholungsbeziehung lösen?

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

5
Was bekommen Sie, wenn Sie versuchen ? Es scheint, dass Sie eine Untergrenze von 2 Ω ( n / log n ) erhalten . f(n)=2f(n-Log⁡n)2Ω(n/Log⁡n)
— Chandra Chekuri

2
@ChandraChekuri Oh, das ist großartig! Und es gibt eine Obergrenze von : Wir verwenden das erneute Auftreten log n - mal, und erhalten , dass f ( n ) ≤ ( 1 + log n ) f ( n - log n ) . Dann wenden wir dieses n / log n- mal an und erhalten f ( n ) ≤ ( 1 + log n2O(nlog⁡log⁡n/log⁡n)log⁡nf(n)≤(1+log⁡n)f(n−log⁡n)n/log⁡n . Die Lücke zwischen Ober- und Untergrenze ist also nur log log n im Exponenten. Dies ist eigentlich genug für meine Zwecke, aber ich lasse die Frage offen, falls jemand die Lücke schließen möchte und kann. Vielen Dank, Chandra! f(n)≤(1+log⁡n)n/log⁡n=2O(nlog⁡log⁡n/log⁡n)log⁡log⁡n
— Möbius Knödel

4
Nun, der gleiche Trick ergibt , also ist 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)
— Emil Jeřábek unterstützt Monica am

Antworten:


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) .
Use this inequality n/log⁡n times, and we get that the solution is 2Ω(nlog⁡log⁡n/log⁡n).

To get the upper bound, use the recurrence log⁡n times and get that

f(n)≤(log⁡n+1)⋅f(n−log⁡n) .
Use this inequality n/log⁡n times, and we get that the solution is 2O(nlog⁡log⁡n/log⁡n).
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.