Bir algoritmanın zaman karmaşıklığı: Logaritmanın temelini belirtmek önemli mi?


Yanıtlar:


63

Logaritmanın nerede olduğuna bağlıdır. Sadece bir faktörse, o zaman bir fark yaratmaz, çünkü big-O veya θ herhangi bir sabitle çarpmanıza izin verir.

O(2logn) alırsanız , baz önemlidir. Baz 2'de sadece O(n) olurdu , baz 10'da yaklaşık O(n0.3010) .


5
Sanırım bu sadece 2 gibi bir şey ortaya çıkaracak √ . Bir sayıyın-to-ne olursa olsunyerine2clogbnolarak ifade etmek için herhangi bir neden göremiyorum(belki de bir hesaplama ara aşaması hariç). 2logn2clogbnn
David Richerby

7
"
Üslerde

50

Asimptotik gösterim sabit faktörlerin habersiz, ve herhangi iki logaritma bir sabit faktör ile farklılık nedeniyle, temel bir fark bulunmaktadır: logan=Θ(logbn) için tüm a,b>1 . Bu nedenle, asimptotik gösterimi kullanırken bir logaritmanın tabanını belirtmeye gerek yoktur.


13
Ben görmeyi tercih yerine ==
Nayuki

16
Korkarım standart gösterim kullanır . =
Yuval Filmus

4
@YuvalFilmus Standart gösterim yanıltıcıdır, diğer her yerde standarttan tamamen farklıdır ve algoritmik karmaşıklığı ona çok benzeyen şeylerden tamamen yabancı görünür hale getirir. "Bu standart gösterim" asla daha iyi ve benzer şekilde açık bir çözüm yerine kötü bir çözümü tercih etmek için bir neden olmamalıdır. (Sembolün anlamı zaten bağlamdan açıkça anlaşılır.)
wizzwizz4

7
@ wizzwizz4 Ortak uygulama mükemmel bir nedendir. Etkin iletişimi teşvik eder. İngilizce yazım tuhaflıklarına katlanmamızın nedeni budur.
Yuval Filmus

3
Bazen sadece daha net olması için çok fazla şeyler vardır log bir n = İçeride ISTV melerin RWMAIWi'nin ( log b n ) . nloganΘ(nlogbn)logan=Θ(logbn)
JiK

15

Olarak logxy=1logyx velogxy=logzylogzx , bu yüzden an'yiloganlogbn=lognblogna=logab. Olaraklogab(bütün pozitif sabittira,b>1), bu nedenle,logan=Θ(logbn).


8

Çoğu durumda, logaritmanın tabanını düşürmek güvenlidir, çünkü diğer cevapların işaret ettiği gibi, logaritma için temel formül, tüm logaritmaların birbirinin sabit katları olduğu anlamına gelir.

Bunun güvenli olmadığı bazı durumlar vardır. Örneğin, @ gnasher729, bir üste logaritma varsa, logaritmik bazın gerçekten önemli olduğuna dikkat çekmiştir.

Logaritmanın tabanının önemli olduğu başka bir durumu belirtmek istedim ve bu, logaritmanın tabanının doğrudan soruna girdi olarak belirtilen bir parametreye bağlı olduğu durumlar. Örneğin, kök sıralama algoritması bir baz numaraları üzerinden yazma çalışır b , kendi baz-girdi numaraları dekompoze b sonra bu numaralar her seferinde bir basamak sıralamak için sıralama sayımı kullanılırsa, basamak. Her turda yapılan iş Θ(n+b) ve kabaca logbU turları vardır (burada U maksimum giriş tamsayısıdır), bu nedenle toplam çalışma zamanı O((n+b)logbU) . Herhangi bir sabit tam sayıb buO(nlogU) basitleştirir. Ancak,b sabitdeğilse ne olur? Akıllı bir teknikb=n , bu durumda çalışma zamanıO(n+lognU) basitleştirilir. YanalognU =logUlogn , genel ifadeO'yabasitleştirir(nlogUO(nlogUlogn). Bu durumda, logaritmanın tabanının gerçekten önemli olduğuna dikkat edin, çünkü giriş boyutuna göre sabit değildir. Benzer çalışma zamanlarına sahip diğer algoritmalar da vardır (örneğin, bir yerlerdelogm/2+2terimiyle sona eren ayrık setli ormanların eski bir analizi), bu durumda günlük tabanının düşürülmesi, çalışma zamanı analizine müdahale eder.

Günlük tabanının önemli olduğu başka bir durum, algoritmaya logaritmik tabanı kontrol eden harici olarak ayarlanabilen bir parametrenin olduğu bir durumdur. Buna güzel bir örnek, bir dış parametre b gerektiren B ağacıdır . Emri, bir B-ağaç yüksekliği b olan Θ(logbn) logaritma tabanı olup, önemli olan, b , bir sabit değildir.

Özetlemek gerekirse, sabit bir tabana sahip bir logaritmanın olduğu durumda, genellikle (@ gnasher729'un işaret ettiği gibi istisnalara tabi olarak) logaritmanın tabanını düşürebilirsiniz. Ancak logaritmanın tabanı algoritmanın bazı parametrelerine bağlı olduğunda, bunu yapmak genellikle güvenli değildir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.