Tekrarlamayı düşünün
bazı pozitif sabit c ile için ve T ( 2 ) = .
Yinelemeleri çözmek için Master teoremini biliyorum, ancak bu ilişkiyi kullanarak nasıl çözebileceğimizden emin değilim. Karekök parametresine nasıl yaklaşıyorsunuz?
Tekrarlamayı düşünün
bazı pozitif sabit c ile için ve T ( 2 ) = .
Yinelemeleri çözmek için Master teoremini biliyorum, ancak bu ilişkiyi kullanarak nasıl çözebileceğimizden emin değilim. Karekök parametresine nasıl yaklaşıyorsunuz?
Yanıtlar:
Raphael'in önerisini kullanacağız ve tekrarını ortaya çıkaracağız. Aşağıda, tüm logaritmalar temel 2'dir.
buradaβ(n),nile başlamak ve 2'ye ulaşmak için kaç kez karekök almak zorunda olduğunuzdur.β(n)=loglogn. Bunu nasıl görebiliyorsun? Şunu düşünün: n
Yorumunuzda, oyuncu değişikliğini denediğinizi, ancak takıldığınızı belirttiniz. İşte işe yarayan bir türev. Motivasyon biz kurtulmak istiyorum olmasıdır sağ taraftaki çarpan, bizeU(n)=U( √. Bu durumda, işler çok iyi çalışıyor:
Şimdi günlüklere geçerek işleri daha da basitleştirelim (
Eğer yazarsanız sahip T ( m ) = m .
Artık özyineleme ağacının sırasına sahip olduğunu biliyorsunuz ve yine her seviyede O ( 2 m ) olduğunu görmek zor değil , bu yüzden toplam çalışma süresi: O ( ( log m ) ⋅ 2 m ) , burada sonucuna O ( n, ⋅ günlük günlük n ) için n .
Tüm gördüğünüzde veyan a, logaritmayı kontrol etmek iyidir.
Not: Tabii ki, onları atladığımdan daha fazla ayrıntı içermelidir.
Raphael'in önerisini takip edelim, : T ( n ) = T ( 2 2 k )
Edit: Thanks Peter Shor for the correction!
Unravel the recurrence once as follows:
Continuing the unraveling for steps, we have that:
These steps will continue until the base case of . Solving for we have:
Substituting into the unraveled recurrence, we have