O (·) bir fonksiyon değildir, bir fonksiyon ona nasıl eşit olabilir?


47

Büyük gösteriminin ne anlama geldiğini tamamen anlıyorum . Benim sorunum derken , burada büyüklüğü girişinde bir algoritma çalışıyor .OT(n)=O(f(n))T(n)n

Bunun anlamını anlıyorum. Fakat ve iki farklı şeydir.T(n)O(f(n))

T(n) bir tam sayıdır, Ama bir dizi dışarı tükürüyor, yani teknik diyebiliriz olamayacağını bir işlev değil eşittir , tek sorarsa Eğer ne değeri arasında Cevabın ne olacağını? Cevabı yok.O(f(n))T(n) O(f(n))O(f(n))


7
Basitçe, T (n) = O (f (n)) içindeki sembol T(n)=O(f(n))"eşittir" anlamına gelmez. Soru bu varsayıma dayanmaktadır. Bunu söyleyen bir kaynak buldun mu?
ShreevatsaR

20
Bu, matematiksel gösterimin kötüye kullanılmasının birçok yolundan sadece biridir :(
technical_difficulty

13
64 sayı ise nasıl 64 olabilirim?
Taw

7
Wikipedia her zaman bir cevap aramaya başlamak için iyi bir yer - bu noktayı tartışan bir bölümü var .
Dukeling

3
@ mathreadler Bir algoritma yok. Büyük O'nun bir algoritmadan bahsettiğini düşünmek, ondalık basının birinin boyundan bahsettiğini düşünmek gibidir. big-O, matematiksel fonksiyonların büyüme hızı hakkında konuşmak için bir işarettir; Ondalık sayılar için bir gösterimdir. Matematiksel fonksiyon, bazı algoritmaların çalışma süresi olabilir, fakat olması gerekmez; rakam olabilir, ama olması gerekmiyor, birinin boyu.
David Richerby

Yanıtlar:


107

Açıkça konuşmak gerekirse, O(f(n)) bir fonksiyonlar kümesidir . Dolayısıyla, O(f(n)) değeri basitçe f (n) ' den daha hızlı değil, asimptotik olarak büyüyen tüm fonksiyonların setidirf(n) . T(n)=O(f(n)) notasyonu sadece T(n)O(f(n)) ye yazmak için kullanılan geleneksel bir yöntemdir .

Bunun ayrıca gösteriminin bazı uyarılarını netleştirdiğine dikkat edin . Örneğin, biz yazıyoruz, fakat asla yazmıyoruz . Donald Knuth'tan (Bilgisayar Programlama Sanatı, 1.2.11.1) alıntı yapmak:O(1/2)n2+n=O(n2)O(n2)=(1/2)n2+n

En önemli husus, tek yönlü eşitliklerin fikridir . [...] ve , notasyonunu içeren formüller ise, notasyonu, ile gösterilen işlev kümesini ifade eder. olan alan ile gösterilen kümesindeki .α(n)β(n)Oα(n)=β(n)α(n)β ( n )β(n)


3
İkinci paragrafı anlamıyorum. yazdığımızda anlamına geldiğine katılıyorum . Fakat eşitlik olarak yorumlanmamalıdır, çünkü mantıklı değil (bu bir tür hatadır!). Öyleyse neden dedin ama ikinci fıkrada f O ( f ( n ) ) 0 ( f ( n ) ) = 0 ( g ( n ) ) 0 ( f ( n ) ) 0 ( g ( n ) ) 0 ( n, 2 ) O ( n- 3 ) O (f=O(f(n))fO(f(n))O(f(n))=O(g(n))O(f(n))O(g(n))O(n2)O(n3)O(n3)O(n2)
Alex Vong

7
çünkü ikisi de ayarlandığında bunuO(n2)O(n3)
yorumluyoruz

1
Kelimeleri gerçekten ihtiyaç duyulan yerlerde kullanırdım. Hesaplamalarda genellikle sadece tek taraflı bir
şeye

11
Daha önce hiç bir zaman O (n ^ 2) = O (n ^ 3) herhangi bir metni ya da başka bir ciddi kaynağı görmedim. Bir tane alıntı yapabilir misin?
Yakk

1
Daha katı olmak istiyorsak, ve işlev değildir, ve . Fakat "nedense" kimsenin insanlar tarafından okunması gereken bir metinde . n, 3 f , n n 3 , n n 2O ( n, n 3 )f(n)n3fnn3nn2O(nn3)
14'te JiK

43

O bir işlevdir yani bir fonksiyonunu kabul eder ve (en fazla) asimptotik sınırını paylaşan bir dizi fonksiyon verir . Ve kesinlikle doğru şekilde ifade , bu nedenle veya kısa ancak matematik, fen bilimleri ve geleneksel olarak kullanılır. ifadenin herhangi bir yerinde , her iki taraftaki argümanının işlevlerini düşündüğünüzü belirten bir değişken . Yani de oldukça iyi.

O:(NR)P(NR)fO(f)
ff
(nT(n))O(nf(n))
TO(f)
nT(n)O(f(n))T(n)=O(f(n))Yine de, şüphelendiğin gibi, yanlış. Çok yaygın olarak kullanılsa da, insanların bunu yazarken ne anlama geldiğini kesinlikle aklınızda bulundurun.

Hiç yazmamasını tavsiye ederim , ancak görüşler farklı .T(n)=O(f(n))


11
0)T(n)=O(f(n) , tamamen standart bir gösterimdir, bu yüzden yanlış olduğunu iddia etmenin faydasız olduğunu iddia eder (IMO gibi, bir işlev olduğunu iddia ediyor ; teknik olarak doğru, ama bu gerçekten yararlı bir yol değil) Bunun hakkında düşünmek için.)O
David Richerby 10:18

38
@DavidRicherby bazı şeyler tamamen standart ama olmamalıdır. bir örnek. İnsanların bununla ne anlama geldiğini bilmek hala iyi olduğundan emin olun (OP'nin dediği gibi), Neden olur Kullanmaya? Sürüm belirsiz olmasa bile , hiçbiri ve daha fazla insan bu gösterime daha iyi geçer. Yazmak çok daha zor olmadıkça, aslında matematiksel olarak mantıklı olana bağlı kalmak her zaman daha iyidir. mükemmel okunabilir ve yazması kolaydır. = T(n)=O(f(n))=
leftaroundabout

1
@leftaroundabout “Yazmak çok daha zor olmadıkça” derken parmağınızı koydunuz. - ile çalışmak, terimlerinin bulunmadığı özel durumlar dışında, yazmak gerçekten çok daha zordur . LHS ve tam olarak RHS'de bir tane. (Bkz. Örn. Bu cevabım gibi asimptotiklerle çalışarak O () notasyonunun tüm faydalarını ortadan kaldıran ve haksız bir varsayıma dayanmak zorunda olan cevabı karşılaştırınız.) Notasyonun amacı düşünceye yardımcı olmaktır. “=” anlamını değiştirerek burada kazanılacak daha çok şey varO ( )O()
ShreevatsaR

2
@ShreevatsaR, nereye gideceğinizden emin değil. Bağlantılı gönderiyi tam olarak okumamıştım, ancak TBH yazınız en kıvrımlı görünüyor ve iyi bir demet gerektiriyor (biraz belirsiz, “bunu şu anda bir kitapta bulamıyorum”) kuralları , oysa diğer cevaplar çözümü ilk prensiplerden kolayca verin. Neyse, "kötüye kullanılan" işaretleri ve ile uygun şekilde değiştirmenizi engelleyen şey nedir? =
leftaroundabout

1
@ShreevatsaR Bir dizi kural / teorem oluşturmanın teori noktası olduğuna katılıyorum. Ancak, en önemlisi , tam olarak uygulandığında her kural için net bir şekilde formalize etmektir . IMO tipi teorisi bunun için en iyi çerçevedir, ancak saf kümeler pratikte yeterince yakındır. Yine de, / / sembollerini içeren cebirsel ifadelerin naif "denklemleri" değildir. - “Set teorisinin formalizmi hakkında düşündürüyorlar”, - görev tamamlandı! - ”ki bu insan düşüncesine uymuyor…” - değil mi? Uygulamada, ilişkilerden bahsetmek tam olarak tip teorisi ile yaptığınız şeydir. o ΘOoΘ
leftaroundabout

13

Biçimsel olarak, konuşma fonksiyonları set edilir öyle ki bir sabit için ve yeterince büyük bir  . Bu nedenle, bilgi yazma işleminin en doğru yolu de . Ancak, yerine kullanmak  tamamen standart ve sadece anlamına gelir . Bu aslında hiçbir zaman belirsizdir çünkü neredeyse hiç bir zaman set manipüle etmiyoruz .O(f(n))gg(n)kf(n)knT(n)O(f(n))=T(n)=O(f(n))T(n)O(f(n))O(f(n))

Bir anlamda, eşitlik kullanılarak yapar ortalama "Bazı fonksiyon , öyle ki tüm yeterince büyük için  " ve gibi şeyler yazabilirsiniz bu araçlar . Bunun veya değerinden daha kesin olduğuna dikkat edin .O(f(n))gg(n)fg(n)nf(n)=3n+O(logn)f(n)=Θ(n)f(n)=O(n+logn)


Ayrıca da yazabilirsiniz . Yine de ile çok adımlı bir hesaplamanın yapılmasının kullanışlı olabileceğini kabul ediyorum . f ( n ) = = 3 n + O ( log n )f(n)3nO(logn)f(n)==3n+O(logn)
leftaroundabout

Yeniden düzenleme sadece bağımsız açıklamalarda çalışır. Hesaplamaların ortasında, bu tür bir şeyin işe yaramadığı ve birden fazla fonksiyonun Landau notasyonuna birlikte absorbe edildiği yerlerde çok daha yaygındır. ( gibi şeyler ). f(x)=ex(e2x+O(x))=ex+o(1)
David Richerby

4
Bu kavanoz gibi hesaplamalar buldum; Bu eşittir işaretleri artık iki yönlü değildir. ilgili daha fazla sorun olduğundan emin değilim . Sanırım bu aynı zamanda gösterimde kötüye kullanım; temelde operatörü aşırı , ben de setlerde çalışmak için ve kaldırmayı tercih ediyorum . = + f(x)ex(e2x+O(x))ex+o(1)=+
leftaroundabout

Bir olasılık, asimptotik fonksiyonlar kümesi, ve bu setin belirlenemeyen bir elemanı için, biraz farklı notasyonlar kullanmak , . Öyleyse, eğer , belirsiz yerine . Daha sonra problemsiz yazabilirsiniz . Belirsiz bir elemanı için diğer olası gösterimler olabileceği düşünülebilecek , ... O ( h ) f - g O ( h ) f = g + O ( h ) f = g + O ( h ) O ( h ) = f - g O ( h ) ˙ O ( h ) O ( h )O(h)O(h)fgO(h)f=g+O(h)f=g+O(h)O(h)=fgO(h)O˙(h)O^(h)
Michel Fioc

11

Prolog: Büyük notasyonu, insan aklının sevdiği dilin bir parçası olarak bazı notasyonların gücünün ve belirsizliğinin klasik bir örneğidir. Ne kadar kafa karışıklığına sebep olursa olsun, kolayca tanımlayabildiğimiz ve verimli bir şekilde kabul edebileceğimiz fikirlerini iletmek için gösterilmeye devam ediyor.O

Büyük gösteriminin ne anlama geldiğini tamamen anlıyorum . Benim sorunum derken , burada büyüklüğü girişinde bir algoritma çalışıyor .OT(n)=O(f(n))T(n)n

Üzgünüz, fakat büyük notalarının anlamını anlıyorsanız, bir sorununuz yok .O

Bunun anlamını anlıyorum. Fakat ve iki farklı şeydir. bir tam sayıdır, Ama bir dizi dışarı tükürüyor, yani teknik diyebiliriz olamayacağını bir işlev değil eşittir , tek sorarsa Eğer ne değeri arasında Cevabın ne olacağını? Cevabı yok.T(n)O(f(n))T(n)O(f(n))T(n) O ( f ( n ) ) O ( f ( n ) ) O(f(n))O(f(n))

Önemli olan anlambilimdir . Önemli olan, insanların asimptotik davranışı veya ilgilendiğimiz zaman veya mekan karmaşıklığını tanımlayacağı kesin yorumlarına (biri) kolayca karar verebilmeleridir. nın varsayılan kesin yorum / tanımı Vikipedi'den çevrildiği gibi ,T(n)=O(f(n))

T gerçek veya karmaşık değerli bir fonksiyondur ve , öyle ki, gerçek değerli bir fonksiyondur, gerçek pozitif bir sayı bazı sınırsız bir alt tanımlanan, her ikisi de bir her yeterince büyük değerler için kesinlikle pozitiftir . Yeterince büyük değerlerinin tümü için , nin mutlak değeri en fazla pozitif bir sabitidir . Yani, pozitif bir gerçek sayı ve gerçek bir sayı öyle kiff(n)nnT(n)f(n)Mn0

 for all nn0,|T(n)|Mf(n) for all nn0.

Lütfen bu yorumlamanın tanım olarak kabul edildiğini unutmayın . Size çeşitli şekillerde büyük ölçüde yardımcı olabilecek diğer tüm yorum ve anlayışlar ikincil ve sonuç niteliğindedir. Herkes (en azından buradaki her cevaplayıcı) bu yorumu / tanımı / anlambilimi kabul eder. Bu yorumu uygulayabildiğiniz sürece, muhtemelen çoğu zaman iyisinizdir. Rahatla ve rahat ol. Çok fazla düşünmek istemezsiniz, tıpkı İngilizcenin ya da Fransızcanın bazı düzensizlikleri ya da birçok doğal dilin hakkında çok fazla düşünmediğiniz gibi. Sadece bu tanımı kullanarak gösterimi kullanın.

T(n)O ( f ( n ) ) , T ( n ) O ( f ( n ) ) O ( f ( n ) ) bir tam sayıdır, Ama bir dizi dışarı tükürüyor, yani teknik diyebiliriz olamayacağını bir işlev değil eşittir , tek sorarsa Eğer ne değeri arasında Cevabın ne olacağını? Cevabı yok.O(f(n))T(n) O(f(n))O(f(n))

Aslında, soru yanlış olduğu için hiçbir cevap olamazdı. kesin bir sayı anlamına gelmez. Bu adı olan bir işlev için beklemeye kastedilmektedir olan ve biçimsel bir parametredir (ki çeşit sınırlanan ait de ). yazarsanız, bu kadar doğru ve daha da doğrudur . Eğer haritaları bu işlevi için ve fonksiyonu haritaları olmasıdır için , aynı zamanda, yazma için gelenekseldir ya daT(n)Tnnf(n)T=O(f)Tnn2fnn3f(n)=O(n3)n2=O(n3)O. Lütfen ayrıca tanımlamanın bir fonksiyon olduğunu ya da olmadığını söylemediğini not edin. Sol tarafın sağ tarafa eşit olması gerektiği söylenemez! Eşit işaretin normal anlamda eşitlik anlamına gelmediğinden, eşitliğin her iki tarafını da değiştirebileceğiniz ve eşdeğer bir ilişki ile desteklenmesi gerektiği konusunda şüphelisiniz . (Eşit işaretin kötüye kullanılmasının daha da ünlü bir örneği, bazı dillerde olduğu kadar hantal olmak yerine, çoğu programlama dilinde atama anlamında eşit işaret kullanılmasıdır .)O:=

Sadece bir eşitlikten endişe ediyorsak (Ben de dili kötüye kullanmaya başlıyorum. Bu bir eşitlik değil ; ancak eşitliktir, çünkü notasyonda eşit bir işaret vardır veya bir eşitlik olarak yorumlanabilir. ), , bu cevap yapılır.T(n)=O(f(n))

Ancak, soru aslında devam ediyor. Örneğin, ne anlama geliyor ? Bu eşitlik yukarıdaki tanım kapsamında değildir. Yer tutucu sözleşmesini başka bir kongre tanıtmak istiyoruz . İşte Vikipedi'de belirtildiği gibi tam yer tutucu sözleşmesi bildirimi .f(n)=3n+O(logn)

Daha karmaşık kullanımda, bir denklemdeki farklı yerlerde her iki tarafta da birkaç kez görünebilir. Örneğin, için aşağıdakiler doğrudur .O()n

(n+1)2=n2+O(n)
(n+O(n1/2))(n+O(logn))2=n3+O(n5/2)
nO(1)=O(en)

Bu gibi ifadelerin anlamı şöyledir: Sol taraftaki her bir yerine getiren herhangi bir fonksiyon için, sağ taraftaki her yerine getiren bazı fonksiyonlar vardır , öyle ki tüm bu fonksiyonlar denklemde kullanılır. iki tarafın eşit olmasını sağlar. Örneğin, yukarıdaki üçüncü denklem şu anlama gelir: "Herhangi bir işlev için , bazı işlevler öyle ki "O()O()f(n)=O(1)g(n)=O(en)nf(n)=g(n)

Burada , yürürlükteki başka bir yer tutucu sözleşmesi örneği için kontrol etmek isteyebilirsiniz .

Şimdiye kadar büyük notasyonunun set-teorik açıklamasını kullanmadığımı fark etmiş olabilirsiniz . Yaptığım tek şey, sadece " bir dizi işlev" gibi küme-teorik bir açıklama olmadan bile göstermek , büyük ifadesini tam ve mükemmel bir şekilde anlayabiliriz . Bu set-teorik açıklamayı yararlı bulursanız, lütfen yine de devam edin.OO(f(n))O

Büyük , , küçük , küçük , çok değişkenli kullanım ve daha fazlası gibi asimptotik davranışa yönelik göstergeler ailesinin daha ayrıntılı bir analiz ve kullanım şekli için CLRS'nin "asimptotik gösterimi" bölümündeki bölümü kontrol edebilirsiniz . Vikipedi girişi de oldukça iyi bir referanstır.ΘΩoω

Son olarak, 1 ve 2 değişkenli büyük gösteriminde bazı belirsizlikler / tartışmalar vardır . Bunları kullanırken iki kez düşünmek isteyebilirsiniz.O


10

In Algoritma Tasarım Kılavuzu [1], bu konuda bir paragraf bulabilirsiniz:

Big Oh notasyonu [ , ve ] fonksiyonları karşılaştırırken kabaca bir eşitlik nosyonunu sağlar. gibi bir ifadeyi görmek biraz zahmetlidir , ancak üst ve alt sınırlar açısından tanımlara geri dönerek anlamı her zaman çözülebilir. Belki de "=" i burada " işlevlerden biri " olarak tanımlamak en öğreticidir . Açıkçası, , fonksiyonlarından biridir .OΩΘn2=O(n3), n 2 O ( n, 3 )n2O(n3)

Kesinlikle (tarafından belirtildiği gibi konuşan David Richerby yorumuyla ), , size eşitlik kaba bir nosyonunu verir az-daha-veya-eşit-için kaba bir nosyonu ve ve büyüktür-ya-eşit kaba kavramı Yapılır.ΘOΩ

Bununla birlikte, Vincenzo'nun cevabına katılıyorum : basitçe fonksiyonlarını bir set olarak ve = sembolünü set üyeliği sembolü olarak yorumlayabilirsiniz .O(f(n))


[1] Skiena, SS Algoritma Tasarım Kılavuzu (İkinci Basım). Springer (2008)


7

Genellikle, gibi ifadeler olarak yorumlanabilir,

f=O(g)
there exists hO(g) such that f=h.

David Richerby yazabiliriz burada, söz gibi bu bağlamda daha yararlı olur yerine "vardır bu şekilde . "f(n)=n3+O(n2)g(n)O(n2)f(n)=n2+g(n)

Bu varoluşsal niceleyici yorumlamasını o kadar yararlı buluyorum ki,

f(n)O(n3)

Bazıları daha da korkunç bir stil ihlali bulacaktır, ancak “ gibi var .Cf(n)Cn3


Ders kitabında Jeff Edmonds kullanıyor .
Theodore Norvell

2

Diğer birçok afiş işlevler bir dizi ifade etmekte Büyük-O düşünülebilir ki belirtir ve gösterim olduğu gösterir (bir fonksiyonu olarak ) içinde set ile gösterilen (yine dikkate parametresi olarak). İngilizce metin olarak, yazma tercih edebilirsiniz " olduğu " karışıklığı önlemek için.n2=O(n3)n2nO(n3)nn2O(n3)

Notasyonu kafa karıştırıcı olabilir rağmen, düşünmeye yardımcı olabilir ve tedavi etmek, aynı notaları, parçaları olarak onu bir sembol sanki. Bir programlama dilinde yazarken yaptığımız şeyden biraz farklıdır : bitişik iki sembol gözlerimizde bir tane olur.O==O>=

İşaretlemenin diğer bir zor yanı, parametre olarak hareket eden değişkenin, açıkça bir işlev bildirimi veya bir lambda gösterimi biçiminde olması gerektiği gibi tanımlanmadığı veya bağlı olmadığıdır. Bu, özellikle olduğu gibi iki değişken olduğunda veya daha da , gibi bir ifadede bir sabit olduğu ima edilebileceği için kafa karıştırıcı olabilir . Sonra tekrar, bazı algoritmalar teknik olarak iki değişkene göre değişen bir Big-O setinde karmaşıklığa sahipken pratikte bunlardan biri sabittir. Dahası, bir algoritmanın karmaşıklığını ölçmenin birden fazla makul yolu olabilir. Giriş, bir sayı ise, örneğin, Algoritma olabilir değeri olarakO(mn)O(nc)cO(n)nsayının bit büyüklüğünde sayısının sayısıdır. (Her ne kadar karmaşıklık teorisinde, bit boyutu genellikle doğru parametredir.)O(2b)

Tüm bunlar, Big-O'nun kesin olmayan bir şekilde işaretlenmiş gayrı resmi bir gösterim olduğunu ve çoğu zaman bir yazarın ne dediğini anlamak için başka bir bağlam kullanmanız gerektiğini söylemek içindir.

Her zamanki gibi, kendi yazınızdaki karışıklıktan kaçınmak için en iyisisiniz ve kaçınmanızı ve bunun yerine veya veya İngilizce kullanılmasını öneriyorum.=OO


" " genellikle okunacak " büyük-O -squared olan -cubed" ya da " sipariş -squared olup -cubed." n2=O(n3)nnnn
David Richerby

2

Sadece birkaç kez yapılan noktanın altını çizmek için , Analizde Asimptotik Yöntemler olan NG de Bruijn'den alıntı yapmama izin verin :

Tüm bu formüllerin ortak yorumu aşağıdaki şekilde ifade edilebilir. sembolünü içeren herhangi bir ifade , bir fonksiyon sınıfı olarak kabul edilmelidir. Eğer aralık olarak kabul edilir, daha sonra bir şekilde tüm fonksiyonlarının sınıfını belirtmektedir ile, , . Ve , sınıfının sınıfında bulunduğu anlamına gelir.O0<x<O(1)+O(x2)f(x)+g(x)f(x)=O(1)(0<x<)g(x)=O(x2)(0<x<)x1O(1)=O(1)+O(x2)x1O(1)O(1)+O(x2). Bazen, ilişkinin sol tarafı bir sınıf değildir, tek bir işlevdir [...]. Sonra ilişki, soldaki fonksiyonun sağdaki sınıfın bir üyesi olduğu anlamına gelir.

İşaretin bu tür ilişkiler için gerçekten yanlış işaret olduğu açıktır , çünkü simetriyi öneriyor ve böyle bir simetri yok. Örneğin, doğru, ancak yanlıştır. Bu uyarı verildikten sonra, işaretini kullanmanın çok fazla bir zararı yoktur ve geleneksel olduğundan başka bir sebep olmadan onu koruyacağız.=O(x)=O(x2)(x)O(x2)=O(x)(x)=

Donald Knuth, matematikçilerin sık sık işaretini İngilizce olarak "is" kelimesini kullandıkları gibi kullandıklarına da dikkat çekti . "Aristoteles bir erkek, ama bir erkek mutlaka Aristoteles değil."=

Bunu söyledikten sonra, Bender ve Orszag'ın ( bilim adamları ve mühendisler için gelişmiş matematiksel yöntemlerden) yazımları daha az kafa karıştırıcıdır ve dikkate değerdir. Bazı sınırlamalara göre:

f(x)g(x)(xx0)

(telaffuz edilen " , asimptotiktir "),fg

limxx0f(x)g(x)=1

ve:

f(x)g(x)(xx0)

(" , karşılaştırıldığında ihmal edilebilir " olarak telaffuz edilir )fg

limxx0f(x)g(x)=0

Ama sanırım büyük oh gösteriminin faydası, sabit faktörün keyfi olduğu. (Ve küçük oh gösteriminde, sabit faktör ne olursa olsun sizsiniz.)


0

Stackoverflow üzerinde bunun üzerinden gittim ; OP’lerin belki de en doğru cevabı daha önce yukarıda belirtilmiş olsa da (# 1 olarak yeniden düzenlenmiş denklik sınıfları), işte tam bir cevap:

  1. sets : " " anlamına gelir , yani bir kümeye üyelik, örn. " asimptotik olarak sınırlandırılmış işlevler kümesi ". Bu, bildiğim asimptotik gösterimin standart matematiksel tedavisidir. Bu küme, örneğin alt kümesine karşılık gelen kısmi bir sıraya sahiptir (bazı kümeler karşılaştırılabilir olabilir; DAG; ilginç için polinom hiyerarşisine bakınız). örnek).f=O()fO(){12x2,(5x2x+5),2.5x,...}x2O(x2)<O(x3)=O(x3+x)

    Not. " " anlamına gelir . Bununla birlikte, not, aşağıda belirtilen farklı olarak, bu belli bir denklik ilişki (deki gibi naif ilişki X olduğu IFF değildir, bir eşdeğerlik sınıfı, çünkü anlamına gelmez ; "Her ikisi de 'nin bir unsuru" olan önemsiz denklik ilişkisi belki de kavramsallaştırmak için eğlencelidir ancak matematiksel olarak ilginçtir, oysa ile çoklu denklik sınıfları fonksiyonların alanını ayırır).f=Θ()fΘ()f X gfO(g)fO(g)gf(g)O(g)Θ

  2. joker karakter ifadesi : tanımını geriye doğru-mühendislik yapabilirsiniz : orijine yakın bazı uncaring yarıçapından sonra (yani , bir , öyle ki tüm ... için), bant sabit katları sınırlanmış o sınırları (yani ) ... ve sadece bu geriye-mühendis böylece herhangi ifadesi yerine ifadesiyle , yani onu sınırın kendisiyle artı umursamadığımız bir hata terimiyle değiştirin ( tarafından sınırlanan bir hata terimi içinfΘ(g)x0x>x0gfLOWg(x)f(x)HIGHg(x)O(g)k1g(x)+err(x)0err(x)k2g(x)x>x0ve potansiyel olarak sınırsız ) ..... öyleyse, örneğin dediğimizde, eşit olarak bu hata terimi . Bunu asla asla yazmazdık ... çünkü biraz saçma. Ancak, bu şekilde düşünmenin meşru olabileceğine ve eşitlik kavramını koruyacağına inanıyorum. (Burada önemli olabilecek olumsuz işaretlerin doğru şekilde ele alınmasına yardım ediyorum.)xx0f=2Θ(x2)f(x)=2k1x2+err(x)0err(x)k2x2

    a. Yukarıdakileri yerine için uygun şekilde değiştirin.OΘ


Bölüm 1 şimdi iş gibi görünüyor. Ancak, hata teriminin 2'de ele alınması hala yanlış. Sen yazamaz olarak herhangi bir pozitif terim için . Ve eğer yazacaksanız, yazacaksanız, o zamandan beri hata terimini "umursamadığınızı" söylemenin doğru olduğunu sanmıyorum. hata terimi, ; bu, çok daha büyüktür . k 1 x 3 + e r r e r r x 2 = 2 x + e r r 2 x - x 2 x 2x2k1x3+errerrx2=2x+err2xx2x2
David Richerby

0

Daha kesin bir cevap, f fonksiyonunun 'g fonksiyonunun büyük O' olduğunu söylediğimiz olacaktır. (Yani, x ^ 2 + x, O (x ^ 2) 'dir. Bazı C ve k değerleri için f (x) <C * g (x)' nin,>>> k olduğunu söylüyoruz. Bu, g'nin f'nin davranışı için bir üst sınır olduğu anlamına gelir.

Örnek

x ^ 2 + 10x 4, O (x ^ 2 + x) 'dir, kendisi de O (x ^ 2)

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.