Informatika1-2013/ZH2Gyakorlo
A MathWikiből
(Változatok közti eltérés)
(egy szerkesztő 5 közbeeső változata nincs mutatva) | |||
20. sor: | 20. sor: | ||
− | * Írj Sage függvényt, mely a kapott | + | * Írj Sage függvényt, mely a kapott ''x'' pozitív egész számot, ha páratlan megszorozza 3-al és hozzáad 1-et, ha páros elosztja 2-vel, majd kiírja az így kapott eredményt, és ezt addig folytatja amíg el nem jut 1-ig. (El fog jutni 1-ig, ez a Collatz sejtés.) A kiegészitendő részeket jelölik a <1>, <2>, <3>, <4>. |
<python> | <python> | ||
def collatz(x): | def collatz(x): | ||
45. sor: | 45. sor: | ||
− | * Írj Sage kódot amely ábrázolja a | + | * Írj Sage kódot amely ábrázolja a <math>\sqrt{|\sin(x)|}</math> függvényt piros színnel, és az <math>x^2\cos(x)</math> függvényt sárga színnel, a <math>-\pi, \pi</math> intervallumon, közös grafikonon. (Az abszolút érték függvény Sage-ben az ''abs(x)'') |
+ | |||
+ | |||
+ | * Írj olyan osztoszam(L, n) Sage függvényt, mely visszaadja, hogy az L egész számokat tartalmazó listának hány eleme osztja az n egész számot. | ||
+ | |||
+ | |||
+ | * Írj olyan hatvany(n) Sage függvényt, mely visszaadja azt a legnagyobb kitevőt melyre az n számot emelve a hatvány még 100 alatt marad. | ||
+ | |||
+ | |||
+ | * Mutass példát a ''find_root'' és a ''sum'' használatára, a Sage válaszával együtt! | ||
+ | |||
+ | |||
+ | * Mit ad ki az ''expand((a + b) ** 2)'' parancs? Hogyan kell az ''a'' és ''b'' változókat definiálni hogy ez működjön? | ||
+ | |||
+ | |||
+ | * Egy táskába pakolunk sorban elemeket, egészen addig amíg meg nem halad egy adott súlyt, amint meghaladta befejezzük a pakolást. Írj olyan ''pakol(L1, n)'' Sage függvényt, mely visszaadja a súlyt ahol megállt, ''L1'' listában találhatók sorban az elemek súlyai, ''n'' a súly korlát. (A listában összesen nehezebb dolgok vannak mint a súly korlát, így nem kell figyelnünk túlindexelésre.) | ||
+ | |||
+ | |||
+ | * Futtassátok le a BFS és DFS algoritmust [http://math.bme.hu/~kkovacs/a.pdf ezen] a gráfon. Arra figyeljetek, hogy mindkét algoritmus, lexikografikusan vegye a szomszédokat, tehát, ha egy x csúcsnak y és z a szomszédja, akkor y-t dolgozza fel elõbb. |
A lap jelenlegi, 2013. november 7., 17:26-kori változata
A gyakorló feladatok nem feltétlen tükrözik a ZH feladatainak nehézségét, de mindenképp jó gyakorlásnak számítanak a ZH-ra.
- Keresd meg a következő kódban található hibákat. (4 hiba van benne.)
def prim(n): s = 0 for p in range(n): if is_prime(p) = True: s += 1 L = () i = 0 psz = 0 while psz < s: if is_prime(i) L.append[i] psz = psz + 1 i = i + 1 return L
- Írj Sage függvényt, mely a kapott x pozitív egész számot, ha páratlan megszorozza 3-al és hozzáad 1-et, ha páros elosztja 2-vel, majd kiírja az így kapott eredményt, és ezt addig folytatja amíg el nem jut 1-ig. (El fog jutni 1-ig, ez a Collatz sejtés.) A kiegészitendő részeket jelölik a <1>, <2>, <3>, <4>.
def collatz(x): <1> x > 1: if <2>: x = x / 2 <3>: <4> print x
- Mit ír ki az alábbi kód?
d = {} i = 0 while i < 10: d[i ** 2] = i i = i + 2 L = d.keys() L.sort() print L
- Írj Sage kódot amely ábrázolja a függvényt piros színnel, és az x2cos(x) függvényt sárga színnel, a − π,π intervallumon, közös grafikonon. (Az abszolút érték függvény Sage-ben az abs(x))
- Írj olyan osztoszam(L, n) Sage függvényt, mely visszaadja, hogy az L egész számokat tartalmazó listának hány eleme osztja az n egész számot.
- Írj olyan hatvany(n) Sage függvényt, mely visszaadja azt a legnagyobb kitevőt melyre az n számot emelve a hatvány még 100 alatt marad.
- Mutass példát a find_root és a sum használatára, a Sage válaszával együtt!
- Mit ad ki az expand((a + b) ** 2) parancs? Hogyan kell az a és b változókat definiálni hogy ez működjön?
- Egy táskába pakolunk sorban elemeket, egészen addig amíg meg nem halad egy adott súlyt, amint meghaladta befejezzük a pakolást. Írj olyan pakol(L1, n) Sage függvényt, mely visszaadja a súlyt ahol megállt, L1 listában találhatók sorban az elemek súlyai, n a súly korlát. (A listában összesen nehezebb dolgok vannak mint a súly korlát, így nem kell figyelnünk túlindexelésre.)
- Futtassátok le a BFS és DFS algoritmust ezen a gráfon. Arra figyeljetek, hogy mindkét algoritmus, lexikografikusan vegye a szomszédokat, tehát, ha egy x csúcsnak y és z a szomszédja, akkor y-t dolgozza fel elõbb.