Granda O: Malsamoj inter versioj

[nekontrolita versio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
KuBOT (diskuto | kontribuoj)
e Anstataŭigo de ne plu uzota Ŝablono:EL; vidu VP:DT en Marto 2017
e Kelkaj rudimentaj lingvaj korektoj
Linio 19:
:<math>\exists \;x_0,\exists \;c>0\mbox{ tia ke } |f(x)| \leqslant \; c |g(x)|\mbox{ por }x>x_0.</math>
 
LaTia skribmanieronotacio povas ankaŭ esti uzita ankaŭ por priskribi konduton de ''f(x)'' proksime al iu reela nombro ''a'':
 
:<math>f(x) \in \mathcal{O}(g(x))\mbox{ kun }x\to a</math>
Linio 37:
== Uzado ==
 
GrandaLa Onotacio skribmanierokun granda O estas utila en analizo de [[rula tempo]] de [[algoritmo]]j.
 
En matematiko, ambaŭ asimptotaj kondutoj proksime al ∞ kaj proksime al iu ''a'' estas uzatadaj. En [[komputa komplikteorio]], nur asimptotoj proksime al ∞ estas uzataj kun nur pozitivaj funkcioj estas konsiderata, tiel la esprimo de absoluta valoro povas esti ellasita el la formuloj de la difino.
Linio 67:
esprimas la fakton ke la eraro, la diferenco <math>e^x - \left(1 + x +\frac{x^2}{2}\right)</math>, estas pli malgranda en [[absoluta valoro]] ol iu konstanto multiplikita per <math>\left|x^3\right|</math> kiam ''x'' proksimiĝas al 0.
 
== Problemoj kunpri la skribmanieronotacio ==
 
''O(f(x))'' signifas kolekton de funkcioj ''g(x)'' de variablo ''x'', tiaj ke ilia kreskado estas limigita per kreskado de ''f(x)'' en iu respekto. La tradicia skribmanieronotacio por tio ke ''g(x)'' apartenas al ĉi tiu kolekto estas:
 
: ''g(x) = O(f(x))''
 
Ĉi tiu uzo de la [[egala signo]] estas [[malbona skribmanieronotacio]], pro tio ke la pli supra frazo ne estas [[ekvacio]]. Estas malvere konkludi de ''g(x) = O(f(x))'' kaj ''h(x) = O(f(x))'' ke ''g(x)=h(x)''. Unu el variantoj estas opinii ke ĉi tie "= ''O''" estas unu simbolo. Al eviti la problemon, iuj aŭtoroj preferas skribi anstataŭe kiel:
 
:<math>g(x) \in \mathcal{O}(f(x))</math>
 
sen diferenco en signifo. Noto ankaŭ, ke ĉi tie en skribmanieronotacio kun simbolo "=" ne eblas interŝanĝi la flankojn, oni ne skribas kiel
 
: ''O(f(x)) = g(x)''
Linio 89:
:<math>g(x) - h(x) \in \mathcal{O}(f(x))</math>
 
Alia anomalio de la skribmanieronotacio, kvankam malpli escepta, estas ke oni ne eksplicitas kiu variablo estas la funkcia argumento, kaj ĉi tion bezonatas konkludi de la ĉirkaŭteksto se kelkaj variabloj estas koncernataj. En la ekzemplo du dekstraj flankoj kunuzantaj la notacion de granda O skribmaniero havas ege malsamajn signifojn:
 
:<math>f(m) = \mathcal{O}(m^n)</math>
Linio 96:
En la unua okazo ''f(m) havas polinoman kreskadon, en la dua por ''m>1'', ''g(n)'' havas eksponentan kreskadon.
 
Fina anomalio estas ke la skribmanieronotacio ne montras klare kie la funkcia kreskado estas konsiderata; proksime al iu punkto aŭ al la malfinio. Ĉi tiu estas en kontrasto kun la kutima skribmanieronotacio por [[limeso|limigoj]].
 
En pli kompleksa uzado, O( ) povas aperi en malsamaj lokoj en ekvacio, eĉ kelkfoje en ĉiu flanko. Ekzemple, jeno estas vera por <math>n\to\infty</math>
Linio 104:
:<math>n^{\mathcal{O}(1)} = \mathcal{O}(e^n)</math>
 
La signifo de la propozicioj estas: por ''ĉiuj'' funkcioj kiu kontentigas ĉiun O( ) maldekstre, estas ''iuj'' funkcioj kontentigantaj ĉiun O( ) dekstre, tiaj ke enmeto de ĉi ĉiuj funkcioj en la ekvacion faras la du flankojn egalajn. Ekzemple, la tria ekvacio pli supre signifas ke por ĉiu funkcio ''f(n)=O(1)'', estas iu funkcio ''g(n)=O(e<sup>n</sup>)'' tia ke ''n<sup>f(n)</sup>=g(n)''. En terminoj de la ara skribmanieronotacio kiel pli supre, la signifo estas ke la klaso de funkcioj prezentitaj per la maldekstra flanko estas subaro de la klaso de funkcioj prezentitaj per la dekstra flanko.
 
Estas ankaŭ problemo ke la simbolo ''f(x)'' signifas la valoron de la funkcio ''f'' por la argumento ''x'', sed ne la funkcion entute. La simbolo de la funkcio estas ''f'' sed ne ''f(x)''. Por ĉi tio, iuj aŭtoroj preferas skribi kiel
Linio 115:
 
{| class=wikitable
! SkribmanieroNotacio !! Nomo !! Ekzemplo de algoritmo kun ĉi tiu tempo
|-
| ''O(1)'' || [[Konstanto]] <br> ([[konstanta tempo]]) || Difini ĉu nombro estas para aŭ nepara
Linio 211:
* <math>o(f) \subset O(f)</math> kaj tial la propraĵoj de ''O'' aplikas kun kombinaĵoj de ''o'' kaj ''O''.
 
Simile al granda ''O'', la frazo "''f(x)'' estas ''o(g(x))''" estas kutime skribata kiel ''f(x) = o(g(x))'', kio estas [[malbona skribmanieronotacio]].
 
=== Aliaj ===
 
{| class=wikitable
! Notacio
! Skribmaniero
! Priskribo
! Difino
Linio 251:
<math>\log^kn</math> estas ĉiam <math>o(n^a)</math> por ĉiu konstanto ''k'' kaj ĉiu konstanto ''a>0''.
 
La [[L-skribmanieronotacio]], difinita kiel
 
:<math>L_n[\alpha, c] = O\left(e^{((c + o(1))(\ln n)^\alpha(\ln\ln n)^{1-\alpha})}\right)</math>,
Linio 283:
 
== Eksteraj ligiloj ==
* [http://www.soe.ucsc.edu/classes/cmps102/Spring04/TantaloAsymp.pdf Enkonduko al asimptotaj skribmanierojnotacioj]
* [http://en.wikibooks.org/wiki/Data_Structures/Asymptotic_Notation#Big-O_Notation Vikilibroj] pri granda ''O''
* [[Donald Knuth]]. ''[http://doi.acm.org/10.1145/1008328.1008329 Granda Omicron kaj granda Omego kaj granda Θ]'', ACM SIGACT Novaĵoj, Volumeno 8, Eldono 2, 1976.
* [http://www.andrew.cmu.edu/~avigad/Papers/bigo.pdf Formaligo de O skribmaniero-notacio]
* [http://www.nist.gov/dads/HTML/bigOnotation.html Granda O skribmaniero-notacio]
* [http://www.nist.gov/dads/HTML/littleOnotation.html MalgrandaNotacio okun skribmanieromalgranda o]
* [http://www.nist.gov/dads/HTML/omegaCapital.html "Ω"]
* [http://www.nist.gov/dads/HTML/omega.html "ω"]
* [http://www.nist.gov/dads/HTML/theta.html "Θ"]
 
[[Kategorio:Matematika skribmanieronotacio]]
[[Kategorio:Asimptota analitiko]]