V izrazu bi radi preverili, če so oklepaji / (, ) / postavljeni pravilno
- (a + b)(c + (d – a))
- (a + b))w)(c + (d – a))
- (a + b)(w c + d – a))
Ideja
- +1 ko naletimo na predklepaj
- - 1 ko naletimo na zaklepaj
Kdaj bo ok?
- Na koncu 0
- Ves čas + ali 0
Pravilnost oklepajev – enostavni primer
V izrazu bi radi preverili, če so oklepaji / (, ) / postavljeni pravilno
Ideja
Kdaj bo ok?
Pravilnost oklepajev – več različnih
Kaj pa, če je več parov različnih oklepajev:
Pozor na pravilno gnezdenje!
Pravilnost oklepajev – ideja
Vedno mora zaklepaj dobiti “najbolj sveži” predklepaj
Ko naletimo na zaklepaj, mora biti na vrhu sklada ustrezen predklepaj
Pravilnost oklepajev - algoritem
Za vse znake v izrazu
Če je znak zaklepaj
Če je sklad prazen:
Če je na vrhu napačen predklepaj:
Če je sklad prazen
Algoritem
Spremljanje
Oglejmo si, kaj se dogaja s skladom, če podamo izraz
Matrično množenje
Zmnožimo jo lahko z matriko B dimenzije
Za to potrebujemo
Matriko velikosti a b lahko zmnožimo samo z matriko velikosti b c
Pr imer:
Kako izračunati A B C D (rezultat bo enak, a načini, kako priti do njega so (vsaj) trije!)
(A B) (C D)
A ((B C) D)
(A (B C)) D
Za izračun optimalnega načina množenja
Matrično množenje
|
|
Kako?
Oklepaji "diktirajo" množenje
Ko pride do zaklepaja, se mora nekaj zmnožiti
Kaj? Najbolj "sveži" matriki:
Matrično množenje - ideja
) : vzamemo dve matriki iz sklada, “izvedemo množenje”
Če gre:
Algoritem
Spremljanje
|
|
Težave postajenačelnika
Predpostavke:
Primer vlaka
Primer vlaka
Preureditev vlaka
Ideja:
Simulacija dogajanj