The referenced paragraph does not exist.
Ohjelmointi 1, syksy 2017, luento 19
- M: 22. Rekursio
- Kertoma - esimerkki jossa määritelmä voidaan antaa itsensä avulla (=rekursiivinen määritelmä)
- Rekursion idea ja kertoma
- Rekursio.cs - luennon versio rekursiivisena ja iteratiivisena (silmukalla, ei saa laskea oikeasti muuten)
- kuvioita rekursion avulla:
- Droste Effect (1, 2)
- Sierpinskin kolmio ja muut fraktaalit
- Mandelbrotin joukko, Kochin lumihiutale
- SierpinskiKolmio.cs - luentomonisteen versio
- SierpinskiKolmio2.cs - versio jossa kolmiot piirretään heti Jypelin olioilla
- SierpinskiKolmio3.cs - versio jossa kolmiot piirretään viivoina Canvakselle ja jossa voi animoida syntyä
- SierpinskiMatto.cs
- Wikipedia: Sierpinski triangle, kuva eräästä toteutuksesta
- Haskell esimerkki rekursiosta
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 19. luento videona: Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
- luentoseinä
Versionhallinnassa
- lähtötilanne: svn export https://svn.cc.jyu.fi/srv/svn/ohj1/esimerkit/2017s/luennot/live19
- lopputilanne: svn export https://svn.cc.jyu.fi/srv/svn/ohj1/esimerkit/2017s/luennot/luento19
Kertausta
Kasvatusoperaattorit
#
muuttujat1
#
muuttujat2
#
muuttujat3
Kysymyksiä
#
Mittulostaa
#
alustus
Rekursio
Rekursiolla tarkoitetaan algoritmia, joka tarvitsee itseään ratkaistakseen ongelman.
- M: Rekursio
- hakemistopuu
#
shell
Kertoma
#
rek
#
kertoma
#
ae_rekursioCS
Animaatio: Suorita animaatio rekursiosta
Askella rekursiota vihreällä nuolella. Tutki kertomaa
- katso myös debuggerilla
#
binomi
Tämän voi ajatella myös niin että 5 alkiota voidaan laittaa 5! eri järjestykseen. Kun niistä otetaan 2 ensimmäistä, niin laskussa 5! tuli laskettu liikaa kaikki näiden kahden erilaiset järjestykset. Toisaalta kussakin eri 5! järjestyksessä kahden alkion valinnan kannalta samoja ovat järjestykset, joissa jäljelle jääneet 3 ovat eri järjestyksissä.
\[\binom {5}{2} = \frac {5!}{2! * (5-2)!} = \frac{1*2*3*4*5}{ 1*2 * 1*2*3} = \frac{4*5}{1*2} = 10\]
Fraktaalit
Sierpinskin kolmio
#
Plugin1
- SierpinskiKolmio.cs - luentomonisteen versio
- SierpinskiKolmio2.cs - versio jossa kolmiot piirretään heti Jypelin olioilla
- SierpinskiKolmio3.cs - versio jossa kolmiot piirretään viivoina Canvakselle ja jossa voi animoida syntyä
- SierpinskiMatto.cs
- Wikipedia: Sierpinski triangle, kuva eräästä toteutuksesta
Rekursio muilla ohjelmointikielillä
Haskell:
sum [] = 0
sum (x:xs) = x + sum xs
#
hellofs
#
listfs
#
listfs2
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.