Memecahkan pengulangan


12

Bagaimana saya bisa menyelesaikan hubungan perulangan berikut?

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

5
Apa yang Anda dapatkan jika Anda mencoba ? Tampaknya Anda akan mendapatkan batas bawah 2 Ω ( n / log n ) . f(n)=2f(n−log⁡n)2Ω(n/log⁡n)
— Chandra Chekuri

2
@ChandraChekuri Oh, bagus sekali! Dan ada batas atas : kita menggunakan log perulangan n kali, dan mendapatkan f ( n ) ≤ ( 1 + log n ) f ( n - log n ) . Kemudian kita menerapkan ini n / log n kali dan mendapatkan f ( n ) ≤ ( 1 + log n2O(nlog⁡log⁡n/log⁡n)log⁡nf(n)≤(1+log⁡n)f(n−log⁡n)n/log⁡n . Jadi kesenjangan antara batas atas dan batas bawah hanya log log n di eksponen. Ini sebenarnya cukup untuk tujuan saya, tetapi saya akan membiarkan pertanyaan terbuka jika seseorang ingin dan mampu menutup kesenjangan. Terima kasih banyak, Chandra! f(n)≤(1+log⁡n)n/log⁡n=2O(nlog⁡log⁡n/log⁡n)log⁡log⁡n
— Mobius dumpling

4
Nah, trik yang sama memberi , jadi 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 3.0

Jawaban:


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) .
n/log⁡n2Ω(nlog⁡log⁡n/log⁡n)

log⁡n

f(n)≤(log⁡n+1)⋅f(n−log⁡n) .
n/log⁡n2O(nlog⁡log⁡n/log⁡n)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.