Informatika2-2021/CsütGyak11

A MathWikiből
(Változatok közti eltérés)
(lcs (3))
26. sor: 26. sor:
 
pl.:<br>
 
pl.:<br>
 
15, 10, 5, 0, 5, 10, 15,
 
15, 10, 5, 0, 5, 10, 15,
== lcs (3) ==
+
== lis (3) ==
 +
Határozzuk meg dinamikus programozás módszerrel egy pozitív egész számokból álló sorozat leghosszabb növekvő részsorozatát.
 +
 
 +
== lcs (3.5) ==
 
Határozzuk meg dinamikus programozás módszerrel két karaktersorozat leghosszabb közös részsorozatának a hosszát. <br>
 
Határozzuk meg dinamikus programozás módszerrel két karaktersorozat leghosszabb közös részsorozatának a hosszát. <br>
 
Pl.: <br>
 
Pl.: <br>

A lap 2021. április 21., 20:37-kori változata

Tartalomjegyzék

Feladatok

A mai órán a rekurzív programozás és a dinamikus programozás módszereivel fogunk megoldani feladatokat. A feladat neve mellett található a feladat nehézsége (szerintem) 1-től 5-ig.

deep_sum (1)

Írjunk egy rekurzív függvényt, aminek bemenete egy olyan lista, mely listákat tartalmaz tetszőleges mélységig, melyekben pozitív egész számok vannak.
A függvény adja vissza a listában lévő számok összegét.
Pl.:
[1, 2, 3, [4, 5], [[[6], 7]]] -> 28

palindrom (1)

Írjunk egy rekurzív függvény, ami eldönti egy stringről, hogy palindrom-e vagy sem.
Pl.:
aba -> True
abb -> False

second_best (2)

Írjunk egy rekurzív függvényt, aminek bemenete egy legalább kételemű lista, melyekben pozitív egész számok vannak 0-tól 100-ig.
A függvény adja vissza a második legnagyobb értéket.
Pl.:
[10,25,60,45,30] -> 45

equal (4)

Írjunk egy rekurzív függvényt, ami kiprinteli az összes olyan n hosszú 0/1 sorozatot, melyeknek az első és második felében a számjegyek összege megegyezik.
Pl.:
n=4 -> 0000, 0101, 0110, 1001, 1010, 1111,
n=5 -> 00000, 00100, 01001, 01101, 01010, 01110, 10001, 10101, 10010, 10110, 11011, 11111,

pattern (3)

Írjunk egy rekurzív függvényt, melynek bemenete egy 5-tel osztható n egész szám, és kiprinteli a következő számsorozatot:
n, n-5, n-10, ..., 0, 5, 10, ..., n-5, n,
A megoldáshoz ne használjunk se listát, se for ciklust, se whilet.
pl.:
15, 10, 5, 0, 5, 10, 15,

lis (3)

Határozzuk meg dinamikus programozás módszerrel egy pozitív egész számokból álló sorozat leghosszabb növekvő részsorozatát.

lcs (3.5)

Határozzuk meg dinamikus programozás módszerrel két karaktersorozat leghosszabb közös részsorozatának a hosszát.
Pl.:
ABCBDAB, BDCABA -> 4
A megadott példában azért kapunk 4-et, mert például mindkét karaktersorozatban előfordul BDAB részsorozat, de hosszabb nem.
Tehát nem kell, hogy a részsorozat egymásutáni elemekből álljon, ugorhatunk is.
Hint: Fussunk végig a két karaktersorozaton és ha adott k indexig megvan a maximum, akkor ha megegyezik s1[k] és s2[k], akkor a maximum nő 1-gyel és tovább megyünk s1[k+1]-re és s2[k+1]-re, ha pedig nem egyezik meg s1[k] és s2[k], akkor két irányba megyünk tovább, vizsgáljuk s1[k+1] és s2[k]-t, illetve s1[k] és s2[k+1]-et, a maximum pedig marad az eddigi maximum.

Személyes eszközök