Sisältö[-] Feedback

Karteesinen tulo [-]

Kahden joukon $X$ ja $Y$ karteesinen tulo $X\times Y$ on joukko, johon kuuluvat kaikki järjestetyt parit $[a,b]$ (tai $(a,b)$) missä $a\in X$ ja $b\in Y$, eli \begin{equation*} X\times Y=\set{[a,b] \mid a\in X, \, b\in Y}. \end{equation*} Järjestyn pari $[a,b]$ määritelmäksi voidaan ottaa joukko $\{\{a\},\{a,b\}\}$. (Muitakin mahdollisuuksia on olemassa ja harvoin tätä määritelmää todella joudutaan käyttämään.)

Esimerkkejä [+]
  • $\R\times \R= \R^2$ on taso ja joukon $\R^2$ alkiot eli tason pisteet kirjoitetaan tavallisesti muodossa $(x,y)$.

Relaatio [-]

Relaatio on jonkinlainen suhde kahden asian välillä mutta seuraava joukko-opillinen määritelmä on täsmällisempi:
Relaatio joukosta $X$ joukkoon $Y$ (tai relaatio joukossa $X$ jos $Y=X$) on karteesisen tulon $X\times Y$ osajoukko.

Relaatio suunnattuna verkkona [+]

Jos joukossa $X$ on äärellisen monta alkiota niin voimme esittää relaation $W\subseteq X\times X$ verkkona, jossa $X$:n alkiot ovat verkon solmut ja solmusta $x$ solmuun $y$ on kaari jos ja vain jos $[x,y]\in W$.
Esimerkiksi näin:

Relaatio on

Voit lisätä tai poistaa kaareja (eli elementtejä relaatiossa) klikkaamalla ensin kyseisen kaaren lähtösomua ja sitten kohdesolmua.

Suuntaamattomassa verkossa ei tehdä eroa kaaren lähtö- ja kohdesolmun välillä.

Esimerkki: Relaatio $<$ [+]

Relaatio joukossa, jossa on äärellisen monta alkiota voidaan esittää suunnattuna verkkona mutta jos joukossa on äärettömän monta alkiota, tämä ei yleensä ole toimiva vaihtoehto.

Esimerkiksi $W=\{ [x,y] \,:\, x,\, y \in \R,\,\, x < y\}$ on relaatio joukossa $\R$ ja siten, kuten kaikki relaatiot joukossa $\R$, tason $\R^2$ osajoukko. Mutta kun puhutaan tästä relaatiosta "pienempi kuin" niin tarkoitetaan useimmiten (kuten monessa muussakin tapauksessa) predikaattia $P(x,y)$, joka on tosi kun $[x,y]\in W$ eli kun $x< y$ (jolloin merkintä $P(x,y)$:n sijasta tietenkin kannattaa kirjoittaa $x< y$).

 

Erilaisia relaatioita joukossa $X$ [-]

Relaatio $W$ joukossa $X$ on
  • refleksiivinen jos $[x,x]\in W$ kaikilla $x\in X$.
  • symmetrinen jos $[x,y]\in W \to [y,x]\in W$ kaikilla $x$ ja $y\in X$.
  • transitiivinen jos $[x,y]\in W \And [y,z]\in W \to [x,z]\in W$ kaikilla $x$, $y$ ja $z\in X$.
  • antisymmetrinen jos $[x,y]\in W \And x\neq y \to [y,x]\notin W$ (eli $[x,y]\in W\And [y,x]\in W\to x=y$) kaikilla $x$ ja $y\in X$.
  • asymmetrinen jos $[x,y]\in W \to [y,x]\notin W$ kaikilla $x$ ja $y\in X$.
  • totaalinen jos $[x,y]\in W \Or [y,x]\in W$ kaikilla $x$ ja $y\in X$.
Lisäksi sanotaan, että $W$ on
  • ekvivalenssirelaatio jos $W$ on refleksiivinen, symmetrinen ja transitiivinen,
    • osittaisjäjestys jos $W$ refleksiivinen, antisymmetrinen ja transitiivinen,
    • täydellinen järjestys jos $W$ on osittaisjärjestys ja täydellinen,
    • hyvinjärjestys jos $W$ on täydellinen järjestys ja jokaisessa $X$:n ei-tyhjässä osa-joukossa on pienin alkio.
Usein kirjoitetaan $[x,y]\in W$:n sijasta $xWy$, esimerkiksi $x\prec y$ eikä $[x,y]\in \prec$.
Esimerkki: Osittaisjärjestys[+]
Olkoon $X$ jokin (ei-tyhjä) joukko ja $\mathcal P(X)$ sen kaikkien osajoukkojen muodostama joukko (eli ns. potenssijoukko). Joukossa $\mathcal P(X)$ meillä on relaatio $\subseteq$: $A\subseteq B$ jos ja vain jos $A$ on $B$:n osajoukko. Tämä relaatio on osittaisjärjestys koska se on
  • refleksiivinen: $A\subseteq A$,
  • antisymmetrinen: Jos $A\subseteq B$ ja $A\neq B$ niin on olemassa $x\in B$ siten että $x\notin A$ jolloin $B\not\subseteq A$,
  • transitiivinen: Jos $A\subseteq B$ ja $B\subseteq C$ niin jokainen $A$:n alkio on $B$:n alkio ja koska jokainen $B$:n alkio on $C$:n alkio niin jokainen $A$:n alkio on $C$:n alkio, eli $A\subseteq C$.
Lisäksi tällä relaatiolla on muitakin ominaisuuksia kuten, että jos $A$, $B\in \mathcal P(X)$ niin joukoille $A$ ja $B$ löytyy pienin yläraja, eli joukko $C$ siten, että $A\subseteq C$, $B\subseteq C$ (eli $C$ on yläraja) ja jos $A\subseteq D$ ja $B\subseteq D$ niin $C\subseteq D$ (eli $C$ on pienin yläraja). Selvästikin $C=A\cup B$. Vastaavasti löytyy myös suurin ala-raja, joka (tietenkin?) on $A\cap B$.

Ekvivalenssiluokat [+]

Jos $X$ on ei-tyhjä joukko ja $\sim$ on ekvivalenssirelaatio joukossa $X$, niin se jakaa joukon $X$ osajoukkoihin $Y_j\neq \emptyset$, $j\in J$ joita kutsutaan ekvivalenssiluokiksi siten, että

  • $\cup_{j\in J} Y_j=X$,
  • $Y_j\cap Y_k=\emptyset$ jos $j\neq k$,
  • $a\sim b \leftrightarrow$ $a$ ja $b$ kuuluvat samaan joukkoon $Y_j$.
Usein ajatellaan, että kaksi alkiota jotka ovat ekvivalenttia, eli niiden muodostama pari kuuluu relaatioon $\sim$, ovatkin ''samat'' jolloin joukon $X$ sijasta tarkastellaan joukkoa $\set{Y_j\mid j\in J}$, jonka alkiot ovat ekvivalenssiluokat.

Esimerkki: Kokonaisluvut ekvivalenssiluokkina [+]

Joukossa $X=\set{[m,n]\mid m,n\in \N}$ voidaan (kunhan ensin on määritelty luonnollisten lukujen yhteenlasku) määritellä ekvivalenssirelaation $\sim$ siten, että $[m_1,n_1]\sim [m_2,n_2]$ jos ja vain jos $m_1+ n_2= m_2+ n_1$.

Tarkistamme, että kyseessä todella on ekvivalenssiluokka:

  • Refleksiivisyys: $[m,n]\sim [m,n]$ koska $m+n=m+n$ (relaatio $=$ on refleksiivinen).
  • Symmetrisyys: Jos $[m_1,n_1]\sim [m_2,n_2]$ niin $m_1+ n_2= m_2+ n_1$ ja silloin pätee myös (koska $=$ on symmetrinen) $m_2+ n_1= m_1+ n_2$ joten $[m_2,n_2]\sim [m_1,n_1]$.
  • Transitiivisyys: Jos $[m_1,n_1]\sim [m_2,n_2]$ ja $[m_2,n_2]\sim [m_3,n_3]$ niin $m_1+ n_2= m_2+ n_1$ ja $m_2+ n_3= m_3+ n_2$. Laskemalla molemmat puolet yhteen saamme \[ m_1+n_2+m_2+n_3= m_2+n_1+m_3+n_2, \] eli \[ m_1+n_3+(n_2+m_2)=m_3+n_1+(n_2+m_2), \] josta seuraa, että \[ m_1+n_3=m_3+n_1, \] eli $[m_1,n_1]\sim [m_3,n_3]$. (Tässä käytimme luonnollisten lukujen laskusääntöjä $(a+b)+c=a+(b+c)$, $a+b=b+a$ ja sääntöä $a+c=b+c\to a=b$ ja ainoa huomioitava asia on, että näitä sääntöjä voi perustella käyttämättä negatiivisia lukuja.)

Nämä ekvivalenssiluokat ''ovat'' kokonaisluvut koska $m_1-n_1= m_2-n_2$ täsmälleen silloin kun $m_1+n_2=m_2+n_1$ ja jokainen kokonaisluku voidaan (monella tavalla) esittää muodossa $m-n$ missä $m$ ja $n$ ovat luonnollisia lukuja.

  

Funktio [-]

Funktio joukosta $X$ joukkoon $Y$ on sääntö, joka liittää jokaiseen joukon $X$ alkioon täsmälleen yhden joukon $Y$ alkion. Relaatio-käsitteen avulla tämä voidaan esittää seuraavalla tavalla:
$f$ on funktio joukosta $X$ joukkoon $Y$, eli $f:X\to Y$ jos $f$ on relaatio joukosta $X$ joukkoon $Y$ (eli karteesisen tulon $X\times Y$:n osajoukko) siten, että

  • jokaisella $x\in X$ on olemassa $y\in Y$ siten, että $[x,y]\in f$.
  • jos $[x,y_1]\in f$ ja $[x,y_2]\in f$ niin $y_1=y_2$.

Tavallisesti funktio esitetään siten, että $[x,y]\in f$ jos ja vain jos $y=f(x)$ (vaikka $xf$ tms. voisi olla parempi merkintätapa jos luetaan vasemmalta oikealle).

  • Jos $f:X\to Y$ on funktio niin $X$ on sen määrittely- eli lähtöjoukko ja $Y$ on sen maalijoukko.
  • Jos $f:X\to Y$ on funktio ja $A\subset X$ niin $f_{|A}:A \to Y$ on funktio $f$ rajoitettuna joukkoon $A$ eli relaationa $f_{|A}=\set{[x,y]\mid [x,y]\in f,\, x\in A}$.
  • $Y^X=\set{f \mid f:X\to Y}$ eli joukko, johon kuuluvat kaikki funktiot joiden määrittelyjoukko on $X$ ja maalijoukko $Y$.

Anonyymit funktiot [+]

Voidaan puhua esim. luvusta $2$ ilman sekaantumisen vaaraa, mutta jos puhutaan lausekkeesta $x+3$ ei ole välttämättä selvää tarkoitetaanko funktiota, joka antaa tulokseksi argumenttinsa johon on lisätty $3$ vai tämän funktion arvo kun argumentti on $x$. Jos tarkoitetaan funktiota eikä sen arvoa niin voidaan kirjoittaa
$x\mapsto x+3$
@(x)x+2
function(x){return x+3;}
lambda([x],x+3);
tai jotain muuta vastaavaa.

Injektio, surjektio ja bijektio [-]

Funktio $f:X\to Y$ on
  • injektio jos $f(x_1)=f(x_2) \to x_1=x_2$ kaikilla $x_1,\, x_2\in X$,
  • surjektio jos kaikilla $y\in Y$ on olemassa $x\in X$ siten, että $f(x)=y$,
  • bijektio jos se on sekä injektio että surjektio.
Ekvivalentti määritelmä on, että $f:X\to Y$ on injektio jos $x_1\neq x_2\to f(x_1)\neq f(x_2)$ kaikilla $x_1$, $x_2\in X$ ja $f$ on surjektio jos arvojoukko $f(X)=\set{f(x)\mid x\in X}$ on sama kuin maalijoukko $Y$ eli $f(X)=Y$.
Esimerkki: Injektio ja/tai surjektio [+]
Valitse esimerkki:
      

Listat, lukujonot ja karteesiset tulot funktioina [+]

  • Lista $[a,b,c,d]$ on funktio $f$, jonka määrittelyjoukko on $\{1,2,3,4\}$ (tai $\{0,1,2,3\}$) siten, että $f(1)=a$, $f(2)=b$, $f(3)=c$ ja $f(4)=d$.
  • Lukujono $(a_n)_{n=0}^\infty=(a_0,a_1,a_2,\ldots )$ on funktio $a$, jonka määrittelyjoukko on $\N_0$ siten, että $a(n)=a_n$ kaikilla $n\in \N_0$.
  • Jos $X_j$ on joukko jokaisella $j\in J$ missä $J$ on (toinen) joukko niin karteesinen tulo $\prod_{j\in J} X_j$ on joukko, johon kuuluvat täsmälleen kaikki funktiot $f:J\to \bigcup_{j\in J} X_j$ siten, että $f(j)\in X_j$ kaikilla $j\in J$.

Yhdistetyt funktiot ja käänteisfunktiot [-]

  • Jos $f:X\to Y$ ja $g:Y\to Z$ ovat kaksi funktiota niin $h=g\circ f:X\to Z$ on funktio $h(x)=g(f(x))$.
  • Jos $f:X\to Y$, $g:Y\to Z$ ja $h:Z\to W$ ovat funktioita niin $(h\circ g)\circ f= h\circ (g\circ f)$ joten tämä funktio voidaan myös kirjoittaa muodossa $h\circ g\circ f$.
  • Jos $f:X\to Y$ sellainen funktio, että on olemassa funktio $g:Y\to X$ siten että $(g\circ f)(x)=x$ ja $(f\circ g)(y)=y$ kaikilla $x\in X$ ja $y\in Y$ niin $f$ on kääntyvä, $g$ on $f$:n käänteisfunktio ja tavallisesti kirjoitetaan $g=f^{-1}$.
  • Funktio $f:X\to Y$ on kääntyvä jos ja vain jos se on bijektio.
  • Jos $f:X\to Y$ on kääntyvä niin $(f^{-1})^{-1}=f$ eli käänteisfunktio on myös kääntyvä ja sen käänteisfunktio on $f$.

Huomaa, ettei $f^{-1}$ ole sama funktio kuin $h(x)= f(x)^{-1}$, joka edyllyttää että $Y$:n (tai ainakin arvojoukon) elementeillä on käänteisalkioita mikä on esim. tilanne joukossa $\R\setminus \{0\}$ mutta ei joukossa $\Z$.

Alkukuva ym. [+]

Olkoon $f$ funktio: $X\to Y$ (missä $X$ ja $Y$ ovat ei-tyhjiä joukkoja). Joukon $B\subseteq Y$ alkukuva kuvauksessa $f$ on silloin \[ f^\leftarrow(B)= \set{x\in X\mid f(x)\in B}. \] Usein käytetty merkintä alkukuvalle on $f^{-1}(B)$ mutta $f^{-1}$ tarkoittaa myös käänteiskuvausta.
$f^\leftarrow$ on siis funktio: $\mathcal P(Y)\to \mathcal P(X)$.

Jos esimerkiksi [+]

$X=Y=\R$ ja $f(x)= \sqrt{\abs{x}}$ niin $f^{\leftarrow}(\{2\})=\{-4,4\}$, $f^\leftarrow({-1})= \emptyset$ ja $f^\leftarrow([3,\infty[)=]-\infty,-9]\cup [9,\infty[$.

Jos $A\subseteq X$ niin $f(A)$ tarkoittaa tavallisesti joukkoa $\set{y\in Y\mid \exists x\in A\,(f(x)=y)}= \set{f(x)\mid x\in A}$. Mutta jos esimerkiksi $X=\{a,\{a\}\}$, $Y=\{b,c\}$, $f(a)= b$ ja $f(\{a\})=c$ niin tällä määritelmällä ei ole selvää onko $f(\{a\})= c$ vai $\{b\}$. Tästä syystä olisi järkevää määritellä funktiota $f^\to:\mathcal P(X)\to \mathcal P(Y)$ siten, että \[ f^\to(A)=\set{f(x)\mid x\in A}, \quad A\subseteq X. \]

Nyt pätee esimerkiksi, että $f^\to$ on surjektio jos $f^\leftarrow$ on injektio.

Miksi? [+]

Osoitamme ensin, että jos $f^\leftarrow$ on injekio niin $f$ on surjektio ja teemme vastaoletuksen, että $f$ ei ole surjektio eli on olemassa alkio $y_1\in Y$ siten, ettei ole olemassa $x\in X$ siten, että $f(x)=y_1$, eli $y_1\notin f^\to(X)$. Joukossa $Y$ on olemassa alkio $y_2\neq y_1$ koska $X\neq \emptyset$. Mutta silloin $f^\leftarrow(\{y_1,y_2\})=f^\leftarrow(\{y_2\})$ ja koska $\{y_1,y_2\}\neq \{y_2\}$ niin $f^\leftarrow$ ei ole injektio.

Seuraavaksi meidän pitää osoittaa, että jos $f$ on surjektio niin myös $f^\to$ on surjektio. Olkoon siis $B\in \mathcal P(Y)$ eli $B\subseteq Y$ mielivaltainen joukko. Jos nyt $A=f^\leftarrow(B)$ niin $f^\to(A)=B$ koska funktion $f^\leftarrow$ määritelmästä seuraa, että $f^\to(A)\subseteq B$ ja koska oletamme, että $f$ on surjektio niin jokaiselle $y\in B$ löytyy $x\in X$ siten, että $f(x)=y$ joten $x\in A=f^\leftarrow(B)$ jolloin $y\in f^\to(A)$.

Nyt siis tiedämme että implikaatiot ''$f^\leftarrow$ on injektio'' $\to$ ''$f$ on surjektio'' ja ''$f$ on surjektio'' $\to$ ''$f^\to$ on surjektio'' ovat tosia jolloin myös implikaatio ''$f^\leftarrow$ on injektio'' $\to$ ''$f^\to$ on surjektio'' on tosi.

Esimerkki: Fibonaccin luvut rekursiivisena funktiona [+]

Määrittelemme funktion $F$ seuraavasti: \begin{equation*} F(n)= \begin{cases} 1,& \text{$n=1$ tai $n=2$},\\ F(n-1)+F(n-2), &\text{$n>2$}. \end{cases} \end{equation*} Voidaan osoittaa, että \begin{equation*} F(n)= \frac 1{\sqrt 5}\left (\left (\frac {1+\sqrt 5}2\right)^n-\left (\frac {1-\sqrt 5}2\right)^n\right ), \end{equation*} eli F=@(n)(((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n)/sqrt(5)

Toinen vaihtoehto on laskea funktion arvot suoraan määritelmästä esim. seuraavalla rekursiivisella funktiolla
function f=F(n)
if n==1 || n==2, f=1;
else f=F(n-1)+F(n-2); end
return, endfunction

Jos haluamme laskea esim luvut $F(1), F(2),F(3),\ldots, F(15)$ voimme ensin määritellä F=[1,1]; ja sitten laskea
for j=3:15, F(j)= F(j-1)+F(j-2); end
Mutta silloin esimerkiksi F(20) ei ole lainkaan määritelty.

Usean muuttujan funktiot? [+]

Edellä on käsitelty ainoastaan yhden muuttujan funktioita. Samalla tavalla voidaan määritellä usean muuttujan funktioita, (laajentamalla ensin relaation käsitettä binäärisestä tapauksesta) mutta tämä ei ole aivan välttämätöntä koska näiden funktioiden kohdalla on olemassa erilaisia lähestymistapoja ja seuraavassa esitetään miten tietty kahden muttujan funktio voidaan määritellä ja sen arvoja laskea eri tavoilla:
  • Kahden muuttujan funktiona: $f(x,y)=\sin(x+3\cdot y)$ ja Matlab/Octavessa esim. f=@(x,y)sin(x+3*y) jolloin funktion arvo pisteessä $(1,2)$ on f(1,2).
  • Yhden vektorimuuttujan funktiona: $ f([x,y])= \sin(x+3\cdot y)$ tai esim. f=@(X)sin(X(1)+3*X(2)) jolloin funktion arvo pisteessä $(1,2)$ on f([1,2]).
  • Yhden (eli esim. ensimmäisen) muuttujan funktioarvoisena funktiona: $x\mapsto (y\mapsto \sin(x+3\cdot y))$ tai esim. f=@(x)@(y)sin(x+3*y) jolloin funktion arvo pisteessä $(1,2)$ on f(1)(2) (Ei toimi Matlabissa!).

Ordo eli Iso-O: $f\in O(g)$ [-]

  • Jos $h$ on funktio, joka on määritelty kaikilla "riittävän isoilla" kokonaisluvuilla niin $f\in O(h)$ kertoo, että myös $f$ on määritelty kaikilla "riittävän isoilla" kokonaisluvuilla ja on olemassa lukuja $C_f$ ja $N_f$ siten, että \begin{equation*} \abs{f(n)}\leq C_f\abs{h(n)},\quad n\geq N_f. \end{equation*}
  • Tämän merkinnän käyttö tarkoittaa myös sitä, ettei ole erityisen oleellista mitä luvut $C_f$ ja $N_f$ oikeasti ovat tai miten pieniksi niitä voi valita.
  • Usein kirjoitetaan $f\in O(h)$:n sijasta $f(n)= O(h(n))$ ja silloin merkinnällä $O(h)$ tarkoitetaan jokin funktio $f$, jolla on se ominaisuus, että $\abs{f(n)}\leq C\abs{h(n)}$ kun $n\geq N$.
  • Jos kirjoitetaan $O(n)+O(n^2)= O(n^2)$ eikä $O(n)+O(n^2)\subseteq O(n^2)$ niin pitää muistaa, ettei tästä seuraa $O(n)=0$!

Tässä käsitellään yksinkertaisuuden vuoksi vain (tietyillä) kokonaisluvuilla märiteltyjä funktioita ja ainoastaan mitä tapahtuu kun $n \to \infty$ mutta se ei ole mitenkään oleellista. Esimerkiksi pätee myös $\frac{x^4-x^3}{x^3+x^2}\in O(x)$ kun $x\to 0$.

Esimerkkejä [+]
  • Jos $f\in O(n^2)$ ja $g\in O(n^3)$ niin $f\cdot g\in O(n^5)$ koska $\abs{f(n)}\leq C_f n^2$ kun $n\geq N_f$ ja $\abs{g(n)}\leq C_g n^3$ kun $n\geq N_g$ joten $\abs{f(n)\cdot g(n)} \leq C_f\cdot C_g\cdot n^{2+3}$ kun $n\geq \max(N_f,N_g)$. Vastaava tulos ei päde jakolaskun $f/g$ kohdalla koska $O(g)$ antaa vain ylärajan, ei alarajaa.
  • Jos $f(n)= n^2$ ja $g(n)= n^3$ niin $f\in O(n^2)$, $g\in O(n^3)$ ja $5$ on (tietenkin?) pienin luku $p$ siten, että $f\cdot g \in O(n^p)$.
  • Mutta jos $2$ on pienin luku $p_f$ siten, että $f\in O(n^{p_f})$ ja $3$ on pienin luku $p_g$ siten, että $g\in O(n^{p_g})$ niin siitä ei välttämättä seuraa, että $5$ olisi pienin luku $p$ siten, että $f\cdot g \in O(n^p)$ koska voimme esimerkiksi valita \begin{align*} f(n)= \begin{cases} n^2,& \text{$n$ on pariton,}\\ 0,& \text{$n$ on parillinen,}\end{cases}\\ g(n)= \begin{cases} 0,& \text{$n$ on pariton,}\\ n^3,& \text{$n$ on parillinen,}\end{cases} \end{align*} jolloin $f(n)g(n)=0$ kaikilla $n$ ja $f\cdot g\in O(n^p)$ kaikilla $p\in \Z$.
Esimerkki: Montako laskutoimitusta tarvitaan kun lasketaan polynomin arvo? [+]

Jos meidän pitää laskea polynomin $p(x)=a_n\cdot x^n+ a_{n-1}\cdot x^{n-1}+\ldots + a_1\cdot x+ a_0$ arvo pisteessä $x=x_*$ niin voimme menetellä esimerkiksi seuraavalla tavalla:
Laskemme luvut $b_j$, $j=n,n-1,\ldots,0$ siten, että
$b_n=a_n$
$b_{n-1}= a_{n-1}+b_n\cdot x_*$
$b_{n-2}= a_{n-2}+b_{n-1}\cdot x_*$
$\quad \vdots $
$b_0 = a_0+ b_1\cdot x_*$
jolloin $p(x_*)=b_0$.

Tässä joudumme siis tekemään korkeintaan $n$ yhteenlaskua ja $n$ kertolaskua eli yhteensä $2\cdot n$ laskutoimitusta joten näiden lukumäärä kuuluu joukkoon $O(n)$ jos polynomin aste on korkeintaan $n$.

Montako vertailua tarvitaan, jotta löytäisimme luvun, jonka suuruusjärjestysnumero on $p$ jos joukossa on $n$ lukua? [+]

Jos $p=1$ (pienin luku) tai $p=n$ (suurin luku) niin $n-1$ vertailua riittää mutta mikä on tilanne yleisessä tapauksessa?

Seuraavaksi osoitamme, että jos $1\leq p \leq n$ niin tarvittavien vertailujen lukumäärä kuuluu joukkoon $O(n)$, eli on olemassa vakio $C$ siten, että vertailujen lukumäärä on korkeintaan $Cn$ emmekä välitä kovinkaan paljon siitä mikä tämä vakio on:

  • Oletamme että tarvitaan korkeintaan $Ck$ vertailua kun joukossa on $k< n$ lukua.
  • Jaamme luvut osajoukkoihin joissa on $5$ lukua: Ei vertailuja.
  • Määritämme näiden osajoukkojen mediaanit: $O(n)$ vertailua.
  • Määritämme mediaanien mediaani: $C (\frac 15 n+1)$ vertailua.
  • Jaamme luvut kahteen joukkoon, riippuen siitä ovatko ne suurempia tai pienempiä kuin mediaanien mediaani: $O(n)$ vertailua.
  • Kumpikin näistä joukoista sisältää korkeintaan $(1-\frac 15\cdot \frac 12\cdot 3)n+O(1)= \frac 7{10}n+ O(1)$ lukua!
  • Joukkojen alkioiden lukumäärien perusteella tiedämme missä osajoukossa hakemamme luku on ellei se ole mediaanien mediaani ja mikä sen järjestysnumero siinä on joten haemme sen kyseisestä osajoukosta: $C\frac 7{10}n + CO(1)$ vertailua.
  • Olemme käyttäneet vertailua missä $c_0$ on vakio.
  • Jos $n\leq 20 c_0$ voimme järjestää luvut käyttäen $n^2\leq (20 c_0) n$ vertailua (tosiasiassa $n\log_2(n)$ vertailua riittää) ja siten löytää hakemamme luku joten jos valitsemme $C\geq 20c_0$ niin tarvitsemme korkeintaan $Cn$ vertailua kun $n\leq 20c_0$ ja kun $n>20 c_0$ eli $c_0<\frac 1{20}n$ toteamme, koska $C$:n valinnan seurauksena $ c_0\leq\frac 1{20}C$, että tarvitsemme vertailua ja induktiopäättely toimii.

Viimeksi muokattu: G. Gripenberg,