Získať nejaké body v tejto úlohe je ľahké: stačí vygenerovať všetky trojice a usporiadať ich podľa súčtu:
|
|
- ĒΓαβριήλ Κορομηλάς
- 5 χρόνια πριν
- Προβολές:
Transcript
1 A-I-1 Trojice Získať nejaké body v tejto úlohe je ľahké: stačí vygenerovať všetky trojice a usporiadať ich podľa súčtu: vector<long long> sucty; for (int p=0; p<n; ++p) for (int q=0; q<p; ++q) for (int r=0; r<q; ++r) sucty.push_back( A[p] + A[q] + A[r] ); sort( sucty.begin(), sucty.end() ); cout << sucty[k-1] << endl; Takéto riešenie má časovú zložitosť O(n 3 log n) kvôli triedeniu. Táto časová zložitosť sa dá o malý chlp zlepšiť na O(n 3 ), a to buď tak, že použijeme efektívnejšie triedenie (napr. radixsort) alebo tak, že namiesto triedenia použijeme lineárny algoritmus na nájdenie k-teho najmenšieho prvku. Keďže však existujú omnoho lepšie riešenia, detaily týchto drobných zlepšení si odpustíme. Zhruba-kvadratické riešenie Ako by sa túto úlohu dalo riešiť lepšie? Jednou inou technikou, ktorá vedie k lepšiemu riešeniu, je napríklad binárne vyhľadávanie odpovede. Použime nové značenie ϕ(x) pre počet trojíc, ktoré majú súčet najviac x. Súťažnú úlohu si teraz môžeme sformulovať nasledovne: ku danému k treba nájsť najmenšie x, pre ktoré je ϕ(x) k. (Slovne: existuje aspoň k trojíc z ktorých každá má súčet x alebo menej.) Vieme, že hľadaná hodnota x leží niekde medzi 0 a Ak by sme vedeli hodnotu ϕ(x) efektívne počítať, môžeme to správne x nájsť binárnym vyhľadávaním v tomto intervale. Ako vieme hodnotu ϕ(x) počítať v lepšom ako kubickom čase? Uvažujme vyššie popísaný algoritmus generujúci všetky trojice indexov (p, q, r). Keď sme si zvolili p a q, dostávame nasledovnú otázku: koľko rôznych možností pre r nám dá dostatočne malý súčet? Keďže čísla na vstupe máme usporiadané od najmenšieho po najväčšie, namiesto skúšania všetkých možných r stačí nájsť najväčšie vyhovujúce r. Toto vieme spraviť v logaritmickom čase (opäť) binárnym vyhľadávaním. Takto teda vieme konkrétnu hodnotu ϕ(x) vypočítať v čase O(n 2 log n). A keďže správne x hľadáme v intervale konštantnej dĺžky, budeme potrebovať vypočítať len konštantne veľa hodnôt ϕ, a teda celková asymptotická časová zložitosť nášho riešenia bude tiež O(n 2 log n). Ešte trochu lepšie riešenie sa zaobíde bez vnútorného binárneho vyhľadávania. Namiesto toho si stačí všimnúť, že keď pre pevne zvolené p postupne zväčšujeme q, tak sa postupne zmenšuje maximálne vyhovujúce r. Presnejšie, sú len dve možnosti: buď je maximálne vyhovujúce r ešte stále rovné q 1, alebo je už A[p] + A[q] také veľké, že trojica indexov (p, q, q 1) už nevyhovuje. Akonáhle nastane táto druhá situácia, tak už bude platiť, že keď zväčšujeme q, tak sa nám nikdy nezväčší maximálne vyhovujúce r. A preto si stačí udržiavať premennú s maximálnym vyhovujúcim r a vždy, keď zväčšíme q, tak túto premennú podľa potreby zmenšovať. Takéto riešenie má časovú zložitosť O(n 2 ). Listing programu (C++) long long lo = A[0]+A[1]+A[2]-1, hi = A[N-1]+A[N-2]+A[N-3]; // invariant: je primálo trojíc so súčtom <= lo, je dosť trojíc so súčtom <= hi while (hi - lo > 1) { long long med = (lo+hi) / 2; // ideme vypočítať, koľko trojíc má súčet <= med long long cnt = 0; for (int p=2; p<n; ++p) { int max_r = 0; for (int q=1; q<p; ++q) { // upravíme hodnotu max_r: najväčšie r také, že A[p]+A[q]+A[r] <= med if (A[p] + A[q] + A[q-1] <= med) { max_r = q-1; else { while (max_r >= 0 && A[p] + A[q] + A[max_r] > med) --max_r; cnt += (max_r + 1); // podľa výsledku zmenšíme na polovicu interval v ktorom hľadáme odpoveď if (cnt >= K) hi = med; else lo = med; cout << hi << endl; strana 1 z 8 úloha A-I-1
2 Vzorové riešenie Doterajšie riešenia ešte nijak nevyužili jeden z predpokladov uvedených v zadaní: skutočnosť, že k je rozumne malé. Vzorové riešenie túto skutočnosť využíva, a to nasledovne: k-ty najmenší súčet nájdeme tak, že postupne vygenerujeme všetkých k najmenších súčtov. Presnejšie, vygenerujeme im zodpovedajúce trojice indexov (p, q, r), pričom tentokrát bude vždy platiť p < q < r. Začať je ľahké: najmenší súčet zjavne zodpovedá trojici indexov (0, 1, 2). Aj druhý krok je dokonca ešte vždy rovnaký: druhý najmenší súčet zodpovedá trojici (0, 1, 3). Ako ale pokračovať? Naše vzorové riešenie bude fungovať nasledovne: v každom okamihu budeme mať množinu kandidátov: trojíc, ktoré môžu byť nasledujúcou trojicou s najmenším súčtom spomedzi všetkých ešte nespracovaných trojíc. Na začiatku sme ešte nevygenerovali žiadnu trojicu a máme jediného kandidáta: trojicu (0, 1, 2). Teraz k-krát zopakujeme nasledujúci postup: 1. Spomedzi všetkých kandidátov vyberieme tú trojicu indexov, ktorej zodpovedá najmenší súčet. (Ak je takých viac, tak ľubovoľnú z nich.) Vybranú trojicu odstránime spomedzi kandidátov. Ak je toto už k-ta spracovaná trojica, vypíšeme na výstup jej zodpovedajúci súčet a skončíme. 2. Ak sme práve spracovali trojicu (a, b, c), pridáme medzi kandidátov nasledujúce trojice: (a + 1, b, c), (a, b + 1, c) a (a, b, c + 1). Presnejšie, pridáme len tie, ktoré sú platné usporiadané trojice indexov. Dokážme si teraz, že toto riešenie skutočne funguje, teda že skutočne generuje trojice indexov v správnom poradí. Na to stačí dokázať nasledujúce tvrdenie: v ľubovoľnom okamihu platí, že ak ešte nespracovaná trojica indexov nie je medzi kandidátmi, tak určite nemá najmenší súčet spomedzi všetkých nespracovaných trojíc. Toto tvrdenie vyplýva z nasledovného pozorovania: trojica indexov (a, b, c) má ostro väčší súčet ako každá z platných trojíc spomedzi (a 1, b, c), (a, b 1, c) a (a, b, c 1). Trojicu (a, b, c) teda chceme spracovať až po všetkých týchto trojiciach. A teda rozhodne platí, že kým žiadna z nich nebola spracovaná, nemá zmysel zaraďovať (a, b, c) medzi kandidátov, keďže vieme o nespracovanej trojici s menším súčtom. (Technicky by stačilo (a, b, c) zaradiť medzi kandidátov až keď spracujeme poslednú spomedzi vyššie spomenutých o jedno menších trojíc, zatiaľ čo my to spravíme už keď spracujeme prvú z nich. To však zjavne nepokazí korektnosť nášho algoritmu len máme občas množinu kandidátov o čosi väčšiu ako by bolo nutné. A ako uvidíme nižšie, nepokazí to ani časovú zložitosť.) Pri udržiavaní množiny kandidátov potrebujeme vedieť efektívne pridávať nových kandidátov a vyberať najlepšieho. Môžeme teda na ich uloženie použiť prioritnú frontu, a tú implementovať buď pomocou haldy alebo pomocou vyvažovaného stromu. V oboch prípadoch bude každá operácia s množinou kandidátov bežať v čase logaritmickom od ich počtu. No a keďže za každého spracovaného kandidáta pridáme nanajvýš troch nových, bude počet kandidátov lineárne rásť s počtom už spracovaných trojíc, a teda bude kandidátov O(k). Následne teda vieme, že každého kandidáta spracujeme v čase O(log k), čiže toto riešenie má celkovú časovú zložitosť O(k log k). Listing programu (C++) #include <bits/stdc++.h> using namespace std; int N; long long K; vector<long long> A; struct triple { int a,b,c; long long sum() const { return A[a]+A[b]+A[c]; ; set<triple> candidates; bool operator<(const triple &X, const triple &Y) { long long xs = X.sum(), ys = Y.sum(); if (xs!= ys) return xs < ys; return make_tuple(x.a,x.b,x.c) < make_tuple(y.a,y.b,y.c); int main() { strana 2 z 8 úloha A-I-1
3 cin >> N >> K; A.resize(N); for (int n=0; n<n; ++n) cin >> A[n]; candidates.insert( {0,1,2 ); while (true) { triple curr = candidates.begin(); candidates.erase( candidates.begin() ); --K; if (K == 0) { cout << curr.sum() << endl; break; if (curr.a+1 < curr.b) candidates.insert( {curr.a+1,curr.b,curr.c ); if (curr.b+1 < curr.c) candidates.insert( {curr.a,curr.b+1,curr.c ); if (curr.c+1 < N ) candidates.insert( {curr.a,curr.b,curr.c+1 ); A-I-2 Telenovela Riešenie začneme tým, že zabezpečíme, aby sme videli prvý aj posledný diel telenovely. Je zjavné, že prvý diel chceme vidieť čo najskôr a posledný čo najneskôr, aby nám medzi nimi ostalo čo najviac iných dielov. Nájdeme preto prvé vysielanie prvého dielu a posledné vysielanie posledného dielu. Ak niektorý z nich vôbec nevysielajú, alebo ak prvý diel vysielajú len neskôr ako posledný, úloha nemá riešenie. V opačnom prípade nám ostala jednoduchšia verzia súťažnej úlohy: v časti televízneho programu ktorá zodpovedá úseku medzi prvou a poslednou epizódou potrebujeme vybrať čo najviac ostatných epizód v správnom poradí. Inými slovami, z danej postupnosti čísel chceme vybrať čo najdlhšiu rastúcu podpostupnosť tvorenú číslami 2 až e 1. Vo zvyšku tohto riešenia si ukážeme dva rôzne efektívne algoritmy ktoré riešia tento problém. Kvadratické riešenie Uvažujme nasledujúcu verziu našej úlohy: na vstupe je postupnosť čísel a 1,..., a n a nás zaujíma dĺžka najdlhšej ostro rastúcej podpostupnosti tejto postupnosti. Na vyriešenie úlohy použijeme dynamické programovanie. Označme b i dĺžku najdlhšej rastúcej podpostupnosti, ktorej posledný prvok je na indexe i. Riešením našej úlohy je zjavne max i b i, takže na vyriešenie úlohy nám stačí postupne vypočítať všetky hodnoty od b 1 po b n. No a ako na to? Ak je na indexe i posledný prvok rastúcej podpostupnosti, sú len dve možnosti: buď má dĺžku 1 (čiže už žiaden iný prvok neobsahuje), alebo má predposledný prvok na nejakom indexe j < i. Keďže celá postupnosť má byť rastúca, pripadajú do úvahy len tie j, pre ktoré platí a j < a i. No a pre každé takéto j platí, že najdlhšia rastúca podpostupnosť, ktorá končí na indexe j, má dĺžku b j. Ak teda chceme vyrobiť najdlhšiu rastúcu podpostupnosť končiacu na indexe i, musíme spomedzi vhodných j vybrať to s najväčším b j. Dotyčná podpostupnosť končiaca na indexe j spolu s prvkom na indexe i potom vytvorí rastúcu podpostupnosť dĺžky b j + 1 končiacu na indexe i. Všetky hodnoty b i teda vieme vypočítať v čase O(n 2 ) nasledovným postupom: Listing programu (C++) // vstup máme uložený v premennej N a v poli hodnôt A[0..N-1] vector<int> B(N); for (int i=0; i<n; ++i) { // hodnotu B[i] inicializujeme na 1, čo zodpovedá jednoprvkovej postupnosti B[i] = 1; // ak je optimálna postupnosť dlhšia, vyskúšame všetky možnosti pre to, // kde má predposledný prvok a vyberieme najlepšiu z nich for (int j=0; j<i; ++j) { if (A[j] < A[i]) { B[i] = max( B[i], 1+B[j] ); Vzorové riešenie Existuje viacero rôznych algoritmov, ktoré vedia najdlhšiu rastúcu podpostupnosť nájsť v čase O(n log n). V tejto časti si ukážeme jeden z nich. Bude zaujímavý aj tým, že je to online algoritmus, ktorý vie fungovať aj strana 3 z 8 úloha A-I-2
4 bez toho, aby vopred vedel, akú dlhú postupnosť budeme spracúvať. Jednoducho budeme zo vstupu postupne čítať prvky postupnosti a po každom z nich budeme vedieť, akú najlepšiu podpostupnosť sme mali v doteraz spracovaných dátach. ) Základné pozorovanie, na ktorom algoritmus založíme, je nasledovné: Predstavme si, že sme už spracovali nejakú časť vstupnej postupnosti, napríklad (10, 3, 8, 6, 9, 4, 6, 22, 7, 5). V tejto postupnosti mohlo byť veľa rôznych dvojprvkových rastúcich podpostupností, napríklad (10, 22), (6, 7), alebo (3, 4). Teraz nám na vstupe príde nový prvok x. Predstavme si, že chceme vyrobiť trojprvkovú rastúcu podpostupnosť, ktorá končí týmto x. Toto musíme spraviť tak, že zoberieme niektorú dvojprvkovú rastúcu podpostupnosť, ktorú sme mali v už spracovaných dátach, a na jej koniec pridáme x. No a ktorá zo všetkých možných dvojprvkových podpostupností je na to najvhodnejšia? Je zjavné, že ak je napríklad postupnosť (5, 7, x) rastúca, tak aj postupnosť (3, 4, x) bude rastúca, lebo ak x > 7, tak tým skôr platí aj x > 4. Inými slovami, najlepšia je tá postupnosť, ktorá končí najmenším možným číslom. Každé x, ktoré by pasovalo za inú podpostupnosť, bude pasovať aj za túto. Budeme si teda udržiavať hodnoty c j s nasledovným významom: keď sa pozrieme na všetky možné rastúce j-prvkové podpostupnosti v už spracovaných dátach a zoberieme posledný prvok každej z nich, najmenšia z takto získaných hodnôt bude práve c j. Špeciálne budeme mať c 0 = (za postupnosť dĺžky 0 sa dá pridať čokoľvek) a c j = + ak ešte v spracovaných dátach žiadna rastúca j-prvková podpostupnosť neexistuje. Príklad: ak sme už spracovali (10, 3, 8, 6, 9, 4, 6, 22, 7, 5) tak budeme mať c 1 = 3, c 2 = 4, c 3 = 5, c 4 = 7, a c 5 = +. Všimnite si, že rôzne c i môžu zodpovedať rôznym podpostupnostiam. Napríklad v tejto chvíli najlepšou podpostupností dĺžky 3 je (3, 4, 5), zatiaľ čo pre dĺžku 4 to je (3, 4, 6, 7). Nasledujúce pozorovanie, ktoré použijeme: konečné hodnoty c i sú vždy usporiadané podľa veľkosti v ostro rastúcom poradí. Napríklad vždy platí c 3 < c 4, lebo keď zoberiem najlepšiu rastúcu podpostupnosť dĺžky 4 a odstránim z nej posledný prvok, tak dostanem nejakú (dokonca nie nutne najlepšiu) rastúcu podpostupnosť dĺžky 3, ktorá končí hodnotou ostro menšou ako c 4. Predstavme si teraz, že prečítame zo vstupu nasledujúci prvok x a zaujíma nás, aká najdlhšia rastúca podpostupnosť končí týmto prvkom. Aby sme to zistili, chceme nájsť najväčšie i také, že c i < x. Potom je zjavné, že najdlhšia rastúca podpostupnosť končiaca práve prečítaným x má dĺžku i + 1. No a keďže vieme, že hodnoty c sú usporiadané podľa veľkosti, vieme hľadané i nájsť v logaritmickom čase binárnym vyhľadávaním. Ostáva nám posledný krok: zistiť, aké nové rastúce podpostupnosti vznikli tým, že sme do postupnosti pridali práve prečítaný prvok x. Presnejšie, chceme zistiť, ktoré z hodnôt c sa nám zmenili a ako. Ukáže sa, že zmena je vždy len minimálna. Spomeňme si, že v predchádzajúcom kroku sme našli najväčšie i také, že c i < x. Teraz platí: Pre každé j i existuje j-prvková rastúca podpostupnosť končiaca prvkom menším ako x. Hodnoty c 1 až c i sa teda nezmenia. Nemáme žiaden spôsob, ako vyrobiť rastúcu podpostupnosť dĺžky i + 2 a viac, ktorá by končila práve prečítaným x. Ani hodnoty od c i+2 ďalej sa teda nezmenia. Tým pádom jediné, čo sa môže zmeniť, je hodnota c i+1. Doteraz sme mohli mať c i+1 > x, teraz zjavne máme c i+1 = x. Napríklad ak by sme pokračovali vo vyššie uvedenom príklade tým, že prečítame zo vstupu ako ďalší prvok postupnosti hodnotu x = 6, zmenila by sa hodnota c 4 zo 7 na 6. Ak by sme namiesto toho prečítali x = 100, ostala by c 4 = 7 a zmenila by sa c 5 z na 100. Po prečítaní a spracovaní n prvkov budeme mať nanajvýš n-prvkovú rastúcu podpostupnosť, preto je v ľubovoľnom okamihu len O(n) prvkov postupnosti c ktoré majú konečnú veľkosť. A teda binárne vyhľadávanie v nich beží v čase O(log n). Každý prvok zo vstupu teda prečítame a spracujeme v logaritmickom čase, a tým pádom je celková časová zložitosť tohto riešenia O(n log n). Listing programu (C++) #include <bits/stdc++.h> using namespace std; strana 4 z 8 úloha A-I-2
5 // v čase n log n vypočítame dĺžku najdlhšej rastúcej podpostupnosti v A int lis_nlogn(const vector<int> &A) { // inicializujeme si C tak, aby C[0]=-inf; v každom okamihu si budeme pamätať len tú časť C ktorá je < inf. vector<int> C(1, -1); for (int a : A) { // nájdeme najmenšie i také, že C[i] >= a unsigned i = upper_bound( C.begin(), C.end(), a-1 ) - C.begin(); // upravíme hodnotu C[i] na a if (i == C.size()) C.push_back(a); else C[i] = a; return C.size()-1; int main() { int N, E; cin >> N >> E; vector<int> epizody(n); for (int n=0; n<n; ++n) cin >> epizody[n]; // nájdeme prvé vysielanie prvej a posledné vysielanie poslednej epizódy int prva = 0, posledna = N-1; while (prva < N && epizody[prva]!= 1) ++prva; while (posledna >= 0 && epizody[posledna]!= E) --posledna; // ak sa nestíhajú oba alebo niektorú vôbec nevysielajú, riešenie neexistuje if (posledna < prva) { cout << -1 << endl; return 0; // zostrojíme postupnosť vysielaní zvyšných epizód ktoré stíhame vidieť vector<int> ostalo; for (int i=prva+1; i<posledna; ++i) { if (1 < epizody[i] && epizody[i] < E) { ostalo.push_back( epizody[i] ); // nájdeme v nich najdlhšiu rastúcu podpostupnosť a pripočítame 2 za prvú+poslednú cout << 2 + lis_nlogn(ostalo) << endl; A-I-3 Reverzy prefixov Riešenia podúloh si ukážeme v trochu inom poradí: podúlohu C si necháme na koniec. Podúloha A: usporiadaj pole Usporiadané pole budeme vyrábať od konca. Pomocou nanajvýš dvoch operácií flip vieme dostať najväčší prvok na koniec poľa. Stačí ho nájsť v poli (nech je na indexe k), spraviť flip(k), nech ho dostaneme na začiatok poľa, a následne spraviť flip(n), nech ho dostaneme na koniec poľa. Od tejto chvíle už budeme robiť flip len s parametrom menším ako n, čím dosiahneme, že najväčší prvok už bude až do konca nepohnute sedieť na konci poľa. Analogicky postupujeme aj ďalej. Takto celé pole usporiadame pomocou nanajvýš 2n 2 operácií f lip. A keďže pred každou z nich potrebujeme nanajvýš O(n) času, má tento algoritmus polynomiálnu (presnejšie, kvadratickú) časovú zložitosť. Podúloha B: testovanie pre 10 prvkov V tejto podúlohe máme postupne prejsť všetkých 10! permutácií desiatich prvkov a pre každú z nich odsimulovať deterministický postup zo zadania. Implementovať postup zo zadania je ľahké. Jediné, čo potrebujeme navyše, je vedieť prejsť cez všetky permutácie. Pri praktickej implementácii sa na to dá použiť knižničnú funkciu (napr. next_permutation v C++, alebo itertools.permutations v Pythone). Ak by sme si takúto funkciu potrebovali implementovať sami, dá sa to spraviť tak, že si vyrobíme pomocnú funkciu ktorá z danej permutácie vyrobí nasledujúcu v lexikografickom poradí. Podrobnejší popis implementácie takejto funkcie nájdete napr. v riešení úlohy A-2-3 z 26. ročníka OI. Príklad implementácie: Listing programu (Python) def simuluj(pole): krokov = 0 strana 5 z 8 úloha A-I-3
6 while pole[0]!= 1: k = pole[0] pole = pole[:k][::-1] + pole[k:] krokov += 1 return krokov from itertools import permutations pocty_krokov = [ ( simuluj(perm), perm ) for perm in permutations(range(1,11)) ] pocty_krokov.sort() for row in pocty_krokov[-10:]: print(row) Spustením programu zistíme, že najväčší počet krokov je 38, a to pre jedinú permutáciu: (5, 9, 1, 8, 6, 2, 10, 4, 7, 3). Podúloha D: vždy skončíme? Ako už naznačujú naše experimenty, deterministický proces popísaný v zadaní vždy skonverguje k tomu, že sa na začiatok postupnosti dostane číslo 1. Ako to ale dokázať? Sporom. Predpokladajme, že to neplatí, teda že sa pre nejakú permutáciu číslo 1 nikdy na začiatok nedostane. Predstavme si, že náš proces budeme opakovať do nekonečna. Keďže rôznych permutácií je len konečne veľa, časom sa nejaká celá permutácia zopakuje. A keďže náš proces je deterministický, od tohto okamihu sa celý proces zacyklí a bude sa dookola opakovať tá istá postupnosť permutácií. Označme k najväčšie číslo, ktoré sa počas tohto cyklu zjaví na začiatku permutácie. Naše tvrdenie teraz dokážeme sporom. Predpokladajme, že k > 1. Čo sa stane? Hneď v nasledujúcom kroku spravíme flip(k), čím sa k dostane na index k. Z definície k vieme, že všetky ostatné čísla, ktoré sa počas cyklu zjavia na začiatku permutácie (vrátane toho, ktoré je tam teraz) sú menšie ako k. To ale znamená, že teraz spravíme flip(l) pre nejaké l < k. Takýto flip ale nechá prvok k na mieste, preto aj on musí na začiatok poľa presunúť nejakú hodnotu menšiu ako k. Lenže tu dostávame hľadaný spor na jednej strane sme predpokladali, že k sa na začiatku zjavuje periodicky, na druhej strane ale vidíme, že k sa už na začiatku nezjaví nikdy, pretože tam už stále budeme mať hodnotu ostro menšiu ako k. Preto ostáva jediná možnosť: k = 1, a teda sa náš proces nutne vždy zacyklí v situácii, v ktorej je na začiatku poľa číslo 1. (Iná možná formulácia dôkazu vyzerá nasledovne: Nech x je najväčšie číslo ktoré sa aspoň raz zjaví na začiatku permutácie. Ak x > 1, tak podobnou úvahou ako vyššie vieme ukázať, že sa x na začiatku zjaví práve raz a odvtedy už bude navždy sedieť nedotknuté na indexe x. No a teraz môžeme zobrať ten okamih t 1, kedy toto nastane, a od neho ďalej zopakovať túto istú úvahu: aké je najväčšie číslo, ktoré sa na začiatku zjaví po čase t 1? Každou iteráciou tejto úvahy sa dostaneme k menšiemu číslu, a keďže tých máme len konečne veľa, po konečnom počte opakovaní tejto úvahy sa dostaneme k tomu, že najväčšie číslo, ktoré sa odteraz vyskytne na začiatku, je už len číslo 1.) Podúloha C: hľadanie dobrej permutácie Na koniec tohto vzorového riešenia sme si nechali podúlohu, ktorá naschvál bola formulovaná otvorene: bolo treba nájsť ľubovoľnú dostatočne dobrú permutáciu. Už z podúlohy B máme implementovanú funkciu, ktorá nám pre konkrétnu permutáciu spočíta počet krokov. Najľahší spôsob, ako získať nejaké body, je jednoducho skúšať túto funkciu spustiť na rôznych náhodných vstupoch a zapamätať si najlepší, ktorý stretneme. Podľa naších experimentov by malo pár miliónov pokusov skoro určite stačiť na prekročenie 500-krokovej hranice. No a pri pár miliardách pokusov (čiže keď ten istý program necháte bežať cez noc) by ste už mali naraziť na nejakú permutáciu, ktorá potrebuje viac ako 750 krokov. Existujú aj efektívnejšie spôsoby hľadania. Vieme si napríklad všimnúť, že pre permutácie, ktoré sa líšia len na pár pozíciách, bude často značná časť krokov nášho algoritmu prebiehať rovnako. Preto keď stretneme nejakú permutáciu, ktorá vyžaduje veľa krokov, oplatí sa pozrieť sa aj na iné, ktoré sa na ňu podobajú. Na takomto pozorovaní sa dá založiť napríklad algoritmus, ktorý pri hľadaní dobrých permutácií používa optimalizačnú techniku hill climbing. Najlepšia permutácia, ktorú náš šikovnejší program za pár hodín našiel, potrebuje až 899 krokov. Vyzerá nasledovne: (35, 45, 23, 38, 11, 6, 15, 39, 43, 32, 20, 18, 30, 16, 5, 29, 7, 12, 14, 37, 31, 3, 17, 41, 36, 13, 19, 2, 10, 28, 44, 42, 47, 1, 25, 46, 21, 8, 27, 34, 4, 26, 22, 33, 24, 9, 40). strana 6 z 8 úloha A-I-3
7 Na záver dodáme, že nám nie je známy žiadny exaktný postup, ktorý by pre dané n zaručene vyrobil permutáciu, ktorá bude potrebovať veľa krokov. Ak nejaký vymyslíte, dajte nám vedieť :) A-I-4 Stavebnica funkcií Postupne si ukážeme riešenia všetkých podúloh. Podúloha A: ternárna nula Máme zostrojiť funkciu zzz 3, ktorá má tri vstupy, ale bez ohľadu na to, čo na nich dostane, vždy vráti nulu. V študijnom texte sme si v Príklade 5 zostrojili unárnu konštantnú nulu: funkciu zz 1, ktorá má jeden vstup a vždy vráti nulu. Najľahší spôsob, ako teraz vyrobiť zzz 3, je pomocou Kompozítora. Zložíme dokopy napríklad vyberaciu funkciu v 3 1 s funkciou zz 1. Vznikne nám tým funkcia s tromi vstupmi. Tie vložíme do funkcie v 3 1, ktorá z nich vypočíta nejakú pomocnú hodnotu. Je jedno akú, lebo tú následne vložíme do funkcie zz 1 a tá na výstup vráti nulu. (Namiesto v 3 1 sme mohli použiť aj ľubovoľnú inú ternárnu funkciu, konštrukcia by stále fungovala práve preto, že na výstupe použitej ternárnej funkcie nezáleží.) Formálne môžeme vyššie popísanú konštrukciu zapísať nasledovne: zzz 3 K[v 3 1, zz 1 ]. Iné riešenie tejto podúlohy využíva Cyklovač. V Príklade 5 sme mali postup, ktorým sme z konštantnej funkcie s aritou 0 spravili konštantnú funkciu s aritou 1. Ak analogický postup zopakujeme ešte dvakrát, dostaneme postupne konštantnú funkciu s aritou 2 a následne s aritou 3. Formálne: najskôr si zostrojíme pomocnú funkciu zzzz 2 C[zz 1, v 3 3] a z nej potom vyrobíme hľadanú funkciu zzz 3 C[zzzz 2, v 4 4]. Podúloha B: preusporiadanie parametrov V tejto podúlohe máme z neznámej funkcie ϕ 4 vyrobiť novú funkciu ψ 3 definovanú nasledovne: a, b, c : ψ 3 (a, b, c) = ϕ 4 (b, a, c, a). Práve na takéto technické úpravy slúžia vyberacie funkcie. Funkciu ψ vyrobíme pomocou Kompozítora. Tomu povieme, že v druhom kroku chceme použiť funkciu ϕ 4 a že v prvom kroku jej chceme vybrať jednotlivé vstupy vhodnými vyberacími funkciami. Presnejšie, do ϕ 4 chceme postupne zadať druhý, prvý, tretí, a znova prvý vstup. Výsledná konštrukcia teda vyzerá nasledovne: ψ K[ v 3 2, v 3 1, v 3 3, v 3 1, ϕ 4 ]. Podúloha C: násobenie Intuitívne, tak ako sčítanie bolo opakovaným použitím nasledovníka, tak násobenie je opakovaným použitím sčítania. Na vyriešenie tejto podúlohy bude teda treba spraviť niečo podobné tomu, čo robíme v študijnom texte v Príklade 4 pri výrobe sčítacej funkcie add. Postupujme teda podobne. Chceme hľadanú funkciu mul vyrobiť pomocou Cyklovača. Poďme si teda zistiť, aké dve funkcie f a g doň musíme vložiť, aby nám von vypadlo práve násobenie. Keď do Cyklovača vložíme unárnu funkciu f a ternárnu funkciu g, dostaneme nasledujúcu binárnu funkciu: def mul(x,y): tmp = f(y) for i = 0 to x-1: tmp = g(i,y,tmp) return tmp Pre x = 0 táto funkcia vráti hodnotu f(y). No a keďže nula krát čokoľvek je nula, potrebujeme, aby f(y) vždy vrátila nulu. Inými slovami, ako f chceme použiť unárnu konštantnú nulu, teda funkciu zz 1 zo študijného textu. Program sa nám teda upravil nasledovne: def mul(x,y): tmp = 0 for i = 0 to x-1: tmp = g(i,y,tmp) return tmp strana 7 z 8 úloha A-I-4
8 My by sme teraz chceli, aby každé z x použití funkcie g zväčšilo premennú tmp o y. Funkcia g teda musí na výstup vrátiť hodnotu y + tmp. Inými slovami, ako g chceme použiť funkciu troch premenných, ktorá na výstup vráti súčet druhého a tretieho vstupu. To je skoro, ale nie úplne, funkcia add. Našťastie sme už v podúlohe B vymysleli, ako funkciu add upraviť do požadovanej podoby. Najskôr si teda z funkcie add vyrobíme Kompozítorom vhodnú funkciu g K[v 3 2, v 3 3, add], a potom už Cyklovačom vyrobíme násobenie: mul C[zz 1, g]. Podúloha D: predchodca Na zostrojenie funkcie predchodcu šikovne (dalo by sa povedať, že až trikovo), použijeme Cyklovač. Začiatok je ľahký: predchodcom nuly je nula. Čo ale spraviť pre x > 0? Pozrime sa opäť na pseudokód funkcie, ktorú nám Cyklovač vyrobí, ak doň vložíme nulárnu funkciu z a neznámu binárnu funkciu g: def p(x): tmp = z() # t.j. tmp = 0 for i = 0 to x-1: tmp = g(i,tmp) return tmp Naše doterajšie použitia Cyklovača doteraz spokojne ignorovali premennú i, teda riadiacu premennú cyklu. Tentokrát ju však použijeme. Všimnime si, že táto premenná postupne nadobúda hodnoty od 0 po x 1. Posledná hodnota i je teda presne hodnota, ktorú chceme vrátiť na výstup. Už je zjavné, ako na to? Presne tak. Úplne stačí, keď g na výstup vráti vždy svoj prvý vstup. Tým dostaneme nasledujúci pseudokód: def p(x): tmp = 0 for i = 0 to x-1: tmp = i return tmp Je to síce neefektívne (kto to kedy videl, počítať predchodcu v lineárnom čase, že?), ale robí to to, čo má. Vidíme teda, že unárnu funkciu predchodcu vieme vyrobiť Cyklovačom z funkcie z a vyberacej funkcie v 2 1. Formálne, p C[z, v 2 1]. Podúloha E: odčítanie Na záver domáceho kola si chceme zostrojiť odčítanie, respektíve teda funkciu, ktorá sa naň čo najviac podobá: binárnu funkciu sub takú, že pre x > y je sub(x, y) = x y a pre x y je sub(x, y) = 0. Základná myšlienka je zjavná: tak, ako je sčítanie opakovaným použitím nasledovníka, tak je odčítanie opakovaným použitím predchodcu. Takto automaticky zabezpečíme aj to, že pre x < y dostaneme ako výsledok nulu. Ak by sme chceli napríklad robiť 3 mínus 7, tak na číslo 3 použijeme 7-krát funkciu p, čím dostaneme nulu, lebo p(0) = 0. Trocha problém je v tom, že Cyklovač vždy použije prvý parameter funkcie ako počet opakovaní. Nevieme teda odčítanie zostrojiť priamo. Vyrobíme si preto najskôr pomocnú funkciu bus, ktorá bude mať parametre v opačnom poradí: bus(x, y) bude y mínus x. Funkciu bus už vieme vyrobiť Cyklovačom. Pre x = 0 platí, že y mínus 0 je y, ako prvú funkciu do Cyklovača teda vložíme identitu. No a druhá funkcia bude, analogicky k Príkladu 4, funkcia K[v 3 3, p] teda funkcia zober predchádzajúcu hodnotu tmp a použi na ňu funkciu predchodcu. Formálne teda bus C[ v 1 1, K[v 3 3, p] ]. No a vymeniť poradie parametrov už vieme z podúlohy B: sub K[v 2 2, v 2 1, bus]. TRIDSIATY TRETÍ ROČNÍK OLYMPIÁDY V INFORMATIKE Príprava úloh: Michal Anderle, Michal Forišek Recenzia: Michal Forišek Slovenská komisia Olympiády v informatike Vydal: IUVENTA Slovenský inštitút mládeže, Bratislava 2017 strana 8 z 8 úloha A-I-4
Matematika Funkcia viac premenných, Parciálne derivácie
Matematika 2-01 Funkcia viac premenných, Parciálne derivácie Euklidovská metrika na množine R n všetkých usporiadaných n-íc reálnych čísel je reálna funkcia ρ: R n R n R definovaná nasledovne: Ak X = x
Διαβάστε περισσότεραStart. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop
1) Vytvorte algoritmus (vývojový diagram) na výpočet obvodu kruhu. O=2xπxr ; S=πxrxr Vstup r O = 2*π*r S = π*r*r Vystup O, S 2) Vytvorte algoritmus (vývojový diagram) na výpočet celkovej ceny výrobku s
Διαβάστε περισσότερα1. Limita, spojitost a diferenciálny počet funkcie jednej premennej
. Limita, spojitost a diferenciálny počet funkcie jednej premennej Definícia.: Hromadný bod a R množiny A R: v každom jeho okolí leží aspoň jeden bod z množiny A, ktorý je rôzny od bodu a Zadanie množiny
Διαβάστε περισσότερα7. FUNKCIE POJEM FUNKCIE
7. FUNKCIE POJEM FUNKCIE Funkcia f reálnej premennej je : - každé zobrazenie f v množine všetkých reálnych čísel; - množina f všetkých usporiadaných dvojíc[,y] R R pre ktorú platí: ku každému R eistuje
Διαβάστε περισσότεραGoniometrické rovnice a nerovnice. Základné goniometrické rovnice
Goniometrické rovnice a nerovnice Definícia: Rovnice (nerovnice) obsahujúce neznámu x alebo výrazy s neznámou x ako argumenty jednej alebo niekoľkých goniometrických funkcií nazývame goniometrickými rovnicami
Διαβάστε περισσότεραEkvačná a kvantifikačná logika
a kvantifikačná 3. prednáška (6. 10. 004) Prehľad 1 1 (dokončenie) ekvačných tabliel Formula A je ekvačne dokázateľná z množiny axióm T (T i A) práve vtedy, keď existuje uzavreté tablo pre cieľ A ekvačných
Διαβάστε περισσότεραMatematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad
Matematika 3-13. prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad Erika Škrabul áková F BERG, TU Košice 15. 12. 2015 Erika Škrabul áková (TUKE) Taylorov
Διαβάστε περισσότεραTomáš Madaras Prvočísla
Prvočísla Tomáš Madaras 2011 Definícia Nech a Z. Čísla 1, 1, a, a sa nazývajú triviálne delitele čísla a. Cele číslo a / {0, 1, 1} sa nazýva prvočíslo, ak má iba triviálne delitele; ak má aj iné delitele,
Διαβάστε περισσότεραARMA modely čast 2: moving average modely (MA)
ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2014/2015 ARMA modely časť 2: moving average modely(ma) p.1/24 V. Moving average proces prvého rádu - MA(1) ARMA modely
Διαβάστε περισσότεραMotivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.
14. decembra 2010 Rie²enie sústav Plocha rovnobeºníka Objem rovnobeºnostena Rie²enie sústav Príklad a 11 x 1 + a 12 x 2 = c 1 a 21 x 1 + a 22 x 2 = c 2 Dostaneme: x 1 = c 1a 22 c 2 a 12 a 11 a 22 a 12
Διαβάστε περισσότεραJednotkový koreň (unit root), diferencovanie časového radu, unit root testy
Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2012/2013 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/18
Διαβάστε περισσότεραModerné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A
M A T E M A T I K A PRACOVNÝ ZOŠIT II. ROČNÍK Mgr. Agnesa Balážová Obchodná akadémia, Akademika Hronca 8, Rožňava PRACOVNÝ LIST 1 Urč typ kvadratickej rovnice : 1. x 2 3x = 0... 2. 3x 2 = - 2... 3. -4x
Διαβάστε περισσότεραChí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky
Chí kvadrát test dobrej zhody Metódy riešenia úloh z pravdepodobnosti a štatistiky www.iam.fmph.uniba.sk/institute/stehlikova Test dobrej zhody I. Chceme overiť, či naše dáta pochádzajú z konkrétneho pravdep.
Διαβάστε περισσότεραObvod a obsah štvoruholníka
Obvod a štvoruholníka D. Štyri body roviny z ktorých žiadne tri nie sú kolineárne (neležia na jednej priamke) tvoria jeden štvoruholník. Tie body (A, B, C, D) sú vrcholy štvoruholníka. strany štvoruholníka
Διαβάστε περισσότεραÚvod do lineárnej algebry. Monika Molnárová Prednášky
Úvod do lineárnej algebry Monika Molnárová Prednášky 2006 Prednášky: 3 17 marca 2006 4 24 marca 2006 c RNDr Monika Molnárová, PhD Obsah 2 Sústavy lineárnych rovníc 25 21 Riešenie sústavy lineárnych rovníc
Διαβάστε περισσότερα6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu
6 Limita funkcie 6 Myšlienka ity, interval bez bodu Intuitívna myšlienka ity je prirodzená, ale definovať presne pojem ity je značne obtiažne Nech f je funkcia a nech a je reálne číslo Čo znamená zápis
Διαβάστε περισσότεραARMA modely čast 2: moving average modely (MA)
ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2011/2012 ARMA modely časť 2: moving average modely(ma) p.1/25 V. Moving average proces prvého rádu - MA(1) ARMA modely
Διαβάστε περισσότεραCvičenie č. 4,5 Limita funkcie
Cvičenie č. 4,5 Limita funkcie Definícia ity Limita funkcie (vlastná vo vlastnom bode) Nech funkcia f je definovaná na nejakom okolí U( ) bodu. Hovoríme, že funkcia f má v bode itu rovnú A, ak ( ε > )(
Διαβάστε περισσότεραKomplexné čísla, Diskrétna Fourierova transformácia 1
Komplexné čísla, Diskrétna Fourierova transformácia Komplexné čísla C - množina všetkých komplexných čísel komplexné číslo: z = a + bi, kde a, b R, i - imaginárna jednotka i =, t.j. i =. komplexne združené
Διαβάστε περισσότερα1. písomná práca z matematiky Skupina A
1. písomná práca z matematiky Skupina A 1. Vypočítajte : a) 84º 56 + 32º 38 = b) 140º 53º 24 = c) 55º 12 : 2 = 2. Vypočítajte zvyšné uhly na obrázku : β γ α = 35 12 δ a b 3. Znázornite na číselnej osi
Διαβάστε περισσότεραDeliteľnosť a znaky deliteľnosti
Deliteľnosť a znaky deliteľnosti Medzi základné pojmy v aritmetike celých čísel patrí aj pojem deliteľnosť. Najprv si povieme, čo znamená, že celé číslo a delí celé číslo b a ako to zapisujeme. Nech a
Διαβάστε περισσότεραGramatická indukcia a jej využitie
a jej využitie KAI FMFI UK 29. Marec 2010 a jej využitie Prehľad Teória formálnych jazykov 1 Teória formálnych jazykov 2 3 a jej využitie Na počiatku bolo slovo. A slovo... a jej využitie Definícia (Slovo)
Διαβάστε περισσότεραZložené funkcie a substitúcia
3. kapitola Zložené funkcie a substitúcia Doteraz sme sa pri funkciách stretli len so závislosťami medzi dvoma premennými. Napríklad vzťah y=x 2 nám hovoril, ako závisí premenná y od premennej x. V praxi
Διαβάστε περισσότεραMichal Forišek: Early beta verzia skrípt z ADŠ
Časová zložitosť Michal Forišek: Early beta verzia skrípt z ADŠ Laický pohľad skutočne môže naznačovať, že efektívne algoritmy vôbec nepotrebujeme. Veď predsa každý rok sa výrobcovia počítačov predbiehajú
Διαβάστε περισσότεραx x x2 n
Reálne symetrické matice Skalárny súčin v R n. Pripomeniem, že pre vektory u = u, u, u, v = v, v, v R platí. dĺžka vektora u je u = u + u + u,. ak sú oba vektory nenulové a zvierajú neorientovaný uhol
Διαβάστε περισσότεραPrechod z 2D do 3D. Martin Florek 3. marca 2009
Počítačová grafika 2 Prechod z 2D do 3D Martin Florek florek@sccg.sk FMFI UK 3. marca 2009 Prechod z 2D do 3D Čo to znamená? Ako zobraziť? Súradnicové systémy Čo to znamená? Ako zobraziť? tretia súradnica
Διαβάστε περισσότερα,Zohrievanie vody indukčným varičom bez pokrievky,
Farba skupiny: zelená Označenie úlohy:,zohrievanie vody indukčným varičom bez pokrievky, Úloha: Zistiť, ako závisí účinnosť zohrievania vody na indukčnom variči od priemeru použitého hrnca. Hypotéza: Účinnosť
Διαβάστε περισσότερα4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti
4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti Výroková funkcia (forma) ϕ ( x) je formálny výraz (formula), ktorý obsahuje znak x, pričom x berieme z nejakej množiny M. Ak za x zvolíme
Διαβάστε περισσότεραGoniometrické substitúcie
Goniometrické substitúcie Marta Kossaczká S goniometrickými funkciami ste sa už určite stretli, pravdepodobne predovšetkým v geometrii. Ich použitie tam ale zďaleka nekončí. Nazačiatoksizhrňme,čoonichvieme.Funkciesínusakosínussadajúdefinovať
Διαβάστε περισσότεραPríklady na precvičovanie Fourierove rady
Príklady na precvičovanie Fourierove rady Ďalším významným typom funkcionálnych radov sú trigonometrické rady, pri ktorých sú jednotlivé členy trigonometrickými funkciami. Konkrétne, jedná sa o rady tvaru
Διαβάστε περισσότεραMetódy vol nej optimalizácie
Metódy vol nej optimalizácie Metódy vol nej optimalizácie p. 1/28 Motivácia k metódam vol nej optimalizácie APLIKÁCIE p. 2/28 II 1. PRÍKLAD: Lineárna regresia - metóda najmenších štvorcov Na základe dostupných
Διαβάστε περισσότεραPlanárne a rovinné grafy
Planárne a rovinné grafy Definícia Graf G sa nazýva planárny, ak existuje jeho nakreslenie D, v ktorom sa žiadne dve hrany nepretínajú. D sa potom nazýva rovinný graf. Planárne a rovinné grafy Definícia
Διαβάστε περισσότεραMATEMATICKÁ OLYMPIÁDA
S MATEMATICÁ OLYMPIÁDA skmo.sk 2008/2009 58. ročník Matematickej olympiády Riešenia úloh IMO. Nech n je kladné celé číslo a a,..., a k (k 2) sú navzájom rôzne celé čísla z množiny {,..., n} také, že n
Διαβάστε περισσότεραMotivácia pojmu derivácia
Derivácia funkcie Motivácia pojmu derivácia Zaujíma nás priemerná intenzita zmeny nejakej veličiny (dráhy, rastu populácie, veľkosti elektrického náboja, hmotnosti), vzhľadom na inú veličinu (čas, dĺžka)
Διαβάστε περισσότεραDefinícia parciálna derivácia funkcie podľa premennej x. Definícia parciálna derivácia funkcie podľa premennej y. Ak existuje limita.
Teória prednáška č. 9 Deinícia parciálna deriácia nkcie podľa premennej Nech nkcia Ak eistje limita je deinoaná okolí bod [ ] lim. tak túto limit nazýame parciálno deriácio nkcie podľa premennej bode [
Διαβάστε περισσότεραLogaritmus operácie s logaritmami, dekadický a prirodzený logaritmus
KrAv11-T List 1 Logaritmus operácie s logaritmami, dekadický a prirodzený logaritmus RNDr. Jana Krajčiová, PhD. U: Najprv si zopakujme, ako znie definícia logaritmu. Ž: Ja si pamätám, že logaritmus súvisí
Διαβάστε περισσότερα7 Derivácia funkcie. 7.1 Motivácia k derivácii
Híc, P Pokorný, M: Matematika pre informatikov a prírodné vedy 7 Derivácia funkcie 7 Motivácia k derivácii S využitím derivácií sa stretávame veľmi často v matematike, geometrii, fyzike, či v rôznych technických
Διαβάστε περισσότερα3. prednáška. Komplexné čísla
3. predáška Komplexé čísla Úvodé pozámky Vieme, že existujú také kvadratické rovice, ktoré emajú riešeie v obore reálych čísel. Študujme kvadratickú rovicu x x + 5 = 0 Použitím štadardej formule pre výpočet
Διαβάστε περισσότεραDerivácia funkcie. Pravidlá derivovania výrazov obsahujúcich operácie. Derivácie elementárnych funkcií
Derivácia funkcie Derivácia funkcie je jeden z najužitočnejších nástrojov, ktoré používame v matematike a jej aplikáciách v ďalších odboroch. Stručne zhrnieme základné informácie o deriváciách. Podrobnejšie
Διαβάστε περισσότεραPrirodzené čísla. Kardinálne čísla
Prirodzené čísla Doteraz sme sa vždy uspokojili s tým, že sme pod množinou prirodzených čísel rozumeli množinu N = { 1, 2,3, 4,5, 6, 7,8,9,10,11,12, } Túto množinu sme chápali intuitívne a presne sme ju
Διαβάστε περισσότεραVzorové riešenia 3. kola zimnej série 2014/2015
riesky@riesky.sk Riešky matematický korešpondenčný seminár Vzorové riešenia. kola zimnej série 04/05 Príklad č. (opravovali Tete, Zuzka): Riešenie: Keďže číslo má byť deliteľné piatimi, musí končiť cifrou
Διαβάστε περισσότεραVLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b
VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR Michal Zajac Vlastné čísla a vlastné vektory Pripomeňme najprv, že lineárny operátor T : L L je vzhl adom na bázu B = {b 1, b 2,, b n } lineárneho priestoru L určený
Διαβάστε περισσότεραReálna funkcia reálnej premennej
(ÚMV/MAN3a/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 18.10.2012 Úvod V každodennom živote, hlavne pri skúmaní prírodných javov, procesov sa stretávame so závislosťou veľkosti niektorých veličín od
Διαβάστε περισσότεραFunkcie - základné pojmy
Funkcie - základné pojmy DEFINÍCIA FUNKCIE Nech A, B sú dve neprázdne číselné množiny. Ak každému prvku x A je priradený najviac jeden prvok y B, tak hovoríme, že je daná funkcia z množiny A do množiny
Διαβάστε περισσότεραOhraničenosť funkcie
VaFu05-T List Ohraničenosť funkcie RNDr. Beáta Vavrinčíková U: V bežnom živote sa často stretávame s funkciami, ktorých hodnot sú určitým spôsobom obmedzené buď na celom definičnom obore D alebo len na
Διαβάστε περισσότεραJednotkový koreň (unit root), diferencovanie časového radu, unit root testy
Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2013/2014 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/27
Διαβάστε περισσότεραIntegrovanie racionálnych funkcií
Integrovanie racionálnych funkcií Tomáš Madaras 2009-20 Z teórie funkcií už vieme, že každá racionálna funkcia (t.j. podiel dvoch polynomických funkcií) sa dá zapísať ako súčet polynomickej funkcie a funkcie
Διαβάστε περισσότεραNumerické metódy Učebný text pre bakalárske štúdium
Imrich Pokorný Numerické metódy Učebný text pre bakalárske štúdium Strana 1 z 48 1 Nepresnosť numerického riešenia úloh 4 1.1 Zdroje chýb a ich klasifikácia................... 4 1.2 Základné pojmy odhadu
Διαβάστε περισσότεραM6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou
M6: Model Hydraulický ytém dvoch záobníkov kvapaliny interakciou Úlohy:. Zotavte matematický popi modelu Hydraulický ytém. Vytvorte imulačný model v jazyku: a. Matlab b. imulink 3. Linearizujte nelineárny
Διαβάστε περισσότερα24. Základné spôsoby zobrazovania priestoru do roviny
24. Základné spôsoby zobrazovania priestoru do roviny Voľné rovnobežné premietanie Presné metódy zobrazenia trojrozmerného priestoru do dvojrozmernej roviny skúma samostatná matematická disciplína, ktorá
Διαβάστε περισσότεραp(α 1 ) = u 1. p(α n ) = u n. Definícia (modulárna reprezentácia polynómu). Zobrazenie
1. Rychlá Fourierová transformácia Budeme značiť teleso T a ω jeho prvok. Veta 1.1 (o interpolácií). Nech α 0, α 1,..., α n sú po dvoch rôzne prvky telesa T[x]. Potom pre každé u 0, u 1,..., u n T existuje
Διαβάστε περισσότεραAerobTec Altis Micro
AerobTec Altis Micro Záznamový / súťažný výškomer s telemetriou Výrobca: AerobTec, s.r.o. Pionierska 15 831 02 Bratislava www.aerobtec.com info@aerobtec.com Obsah 1.Vlastnosti... 3 2.Úvod... 3 3.Princíp
Διαβάστε περισσότεραMATEMATICKÁ ANALÝZA 1
UNIVERZITA PAVLA JOZEFA ŠAFÁRIKA V KOŠICIACH Prírodovedecká fakulta Ústav matematických vied Božena Mihalíková, Ján Ohriska MATEMATICKÁ ANALÝZA Vysokoškolský učebný text Košice, 202 202 doc. RNDr. Božena
Διαβάστε περισσότεραFUNKCIE N REÁLNYCH PREMENNÝCH
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO V BRATISLAVE FUNKCIE N REÁLNYCH PREMENNÝCH RNDr. Kristína Rostás, PhD. PREDMET: Matematická analýza ) 2010/2011 1. DEFINÍCIA REÁLNEJ FUNKCIE
Διαβάστε περισσότεραPRIEMER DROTU d = 0,4-6,3 mm
PRUŽINY PRUŽINY SKRUTNÉ PRUŽINY VIAC AKO 200 RUHOV SKRUTNÝCH PRUŽÍN PRIEMER ROTU d = 0,4-6,3 mm èíslo 3.0 22.8.2008 8:28:57 22.8.2008 8:28:58 PRUŽINY SKRUTNÉ PRUŽINY TECHNICKÉ PARAMETRE h d L S Legenda
Διαβάστε περισσότερα18. kapitola. Ako navariť z vody
18. kapitola Ako navariť z vody Slovným spojením navariť z vody sa zvyknú myslieť dve rôzne veci. Buď to, že niekto niečo tvrdí, ale nevie to poriadne vyargumentovať, alebo to, že niekto začal s málom
Διαβάστε περισσότερα1-MAT-220 Algebra februára 2012
1-MAT-220 Algebra 1 12. februára 2012 Obsah 1 Grupy 3 1.1 Binárne operácie.................................. 3 1.2 Cayleyho veta.................................... 3 2 Faktorizácia 5 2.1 Relácie ekvivalencie
Διαβάστε περισσότεραMIDTERM (A) riešenia a bodovanie
MIDTERM (A) riešenia a bodovanie 1. (7b) Nech vzhl adom na štandardnú karteziánsku sústavu súradníc S 1 := O, e 1, e 2 majú bod P a vektory u, v súradnice P = [0, 1], u = e 1, v = 2 e 2. Aký predpis bude
Διαβάστε περισσότερα3. Striedavé prúdy. Sínusoida
. Striedavé prúdy VZNIK: Striedavý elektrický prúd prechádza obvodom, ktorý je pripojený na zdroj striedavého napätia. Striedavé napätie vyrába synchrónny generátor, kde na koncoch rotorového vinutia sa
Διαβάστε περισσότεραObyčajné diferenciálne rovnice
(ÚMV/MAN3b/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 14.3.2013 Úvod patria k najdôležitejším a najviac prepracovaným matematickým disciplínam. Nielen v minulosti, ale aj v súčastnosti predstavujú
Διαβάστε περισσότεραAproximačné algoritmy. (7. októbra 2010) DRAFT
R. Královič Aproximačné algoritmy (7. októbra 2010) ii Obsah 1 Úvod 1 1.1 Algoritmy a zložitosť........................... 1 1.2 Lineárne programovanie......................... 1 1.3 Použité vzťahy..............................
Διαβάστε περισσότεραDynamické programovanie
7. prednáška (4.4.2016) Dynamické programovanie alebo Bol raz jeden problém... 1 Čo už vieme Asymptotická časová zložitosť algoritmov Základné údajové štruktúry: spájaný zoznam, strom, zásobník, rad možnosti
Διαβάστε περισσότεραMONITOR 9 (2007) riešenia úloh testu z matematiky
MONITOR 9 (007) riešenia úloh testu z matematiky Autormi nasledujúcich riešení sú pracovníci spoločnosti EXAM testing Nejde teda o oficiálne riešenia, ktoré môže vydať ia Štátny pedagogický ústav (wwwstatpedusk)
Διαβάστε περισσότεραTechnická univerzita v Košiciach. Zbierka riešených a neriešených úloh. z matematiky. pre uchádzačov o štúdium na TU v Košiciach
Technická univerzita v Košiciach Zbierka riešených a neriešených úloh z matematiky pre uchádzačov o štúdium na TU v Košiciach Martin Bača Ján Buša Andrea Feňovčíková Zuzana Kimáková Denisa Olekšáková Štefan
Διαβάστε περισσότεραXVIII. ročník BRKOS 2011/2012. Pomocný text. Kde by bola matematika bez čísel? Čísla predstavujú jednu z prvých abstrakcií, ktorú
Pomocný text Číselné obory Číselné obory Kde by bola matematika bez čísel? Čísla predstavujú jednu z prvých abstrakcií, ktorú ľudia začali vnímať. Abstrakcia spočívala v tom, že množstvo, ktoré sa snažili
Διαβάστε περισσότεραMatematika 2. časť: Funkcia viac premenných Letný semester 2013/2014
Matematika 2 časť: Funkcia viac premenných Letný semester 2013/2014 RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk
Διαβάστε περισσότεραPriamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava
Priamkové plochy Priamkové plochy Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava Priamkové plochy rozdeľujeme na: Rozvinuteľné
Διαβάστε περισσότεραSymbolická logika. Stanislav Krajči. Prírodovedecká fakulta
Symbolická logika Stanislav Krajči Prírodovedecká fakulta UPJŠ Košice 2008 Názov diela: Symbolická logika Autor: Doc. RNDr. Stanislav Krajči, PhD. Vydala: c UPJŠ Košice, 2008 Recenzovali: Doc. RNDr. Miroslav
Διαβάστε περισσότερα1.4 Rovnice, nerovnice a ich sústavy
1. Rovnice, nerovnice a ich sústavy Osah Pojmy: rovnica, nerovnica, sústava rovníc, sústava nerovníc a ich riešenie, koeficient, koreň, koreňový činiteľ, diskriminant, doplnenie do štvorca, úprava na súčin,
Διαβάστε περισσότερα6 APLIKÁCIE FUNKCIE DVOCH PREMENNÝCH
6 APLIKÁCIE FUNKCIE DVOCH PREMENNÝCH 6. Otázky Definujte pojem produkčná funkcia. Definujte pojem marginálny produkt. 6. Produkčná funkcia a marginálny produkt Definícia 6. Ak v ekonomickom procese počet
Διαβάστε περισσότεραMatematika 2. časť: Analytická geometria
Matematika 2 časť: Analytická geometria RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk Súradnicové
Διαβάστε περισσότεραObsah. 1.1 Reálne čísla a ich základné vlastnosti... 7 1.1.1 Komplexné čísla... 8
Obsah 1 Číselné obory 7 1.1 Reálne čísla a ich základné vlastnosti............................ 7 1.1.1 Komplexné čísla................................... 8 1.2 Číselné množiny.......................................
Διαβάστε περισσότεραKompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017
Kompilátory Cvičenie 6: LLVM Peter Kostolányi 21. novembra 2017 LLVM V podstate sada nástrojov pre tvorbu kompilátorov LLVM V podstate sada nástrojov pre tvorbu kompilátorov Pôvodne Low Level Virtual Machine
Διαβάστε περισσότεραNumerické metódy matematiky I
Prednáška č. 7 Numerické metódy matematiky I Riešenie sústav lineárnych rovníc ( pokračovanie ) Prednáška č. 7 OBSAH 1. Metóda singulárneho rozkladu (SVD) Úvod SVD štvorcovej matice SVD pre menej rovníc
Διαβάστε περισσότερα1 Prevod miestneho stredného slnečného času LMT 1 na iný miestny stredný slnečný čas LMT 2
1 Prevod miestneho stredného slnečného času LMT 1 na iný miestny stredný slnečný čas LMT 2 Rozdiel LMT medzi dvoma miestami sa rovná rozdielu ich zemepisných dĺžok. Pre prevod miestnych časov platí, že
Διαβάστε περισσότεραLR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera
LR0) syntaktické analyzátory doc. RNDr. Ľubomír Dedera Učebné otázky LR0) automat a jeho konštrukcia Konštrukcia tabuliek ACION a GOO LR0) syntaktického analyzátora LR0) syntaktický analyzátor Sám osebe
Διαβάστε περισσότεραSpojitosť a limity trochu inak
Spojitosť a limity trochu inak Štefan Tkačik Abstrakt Spojitosť funkcie alebo oblastí je základným stavebným kameňom matematickej analýzy. Pochopenie jej podstaty uľahčí chápanie diferenciálneho a integrálneho
Διαβάστε περισσότεραVektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich
Tuesday 15 th January, 2013, 19:53 Základy tenzorového počtu M.Gintner Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich násobenie reálnym číslom tak, že platí:
Διαβάστε περισσότεραÚvod 2 Predhovor... 2 Sylaby a literatúra... 2 Označenia... 2
Obsah Úvod Predhovor Sylaby a literatúra Označenia Euklidovské vektorové priestory 3 Skalárny súčin 3 Gram-Schmidtov ortogonalizačný proces 8 Kvadratické formy 6 Definícia a základné vlastnosti 6 Kanonický
Διαβάστε περισσότεραTREDNÁ ODBORNÁ ŠKOLA STRÁŽSKE PRACOVNÝ ZOŠIT. k predmetu Matematika pre
TREDNÁ ODBORNÁ ŠKOLA STRÁŽSKE PRACOVNÝ ZOŠIT k predmetu Matematika pre 2. ročník SOŠ v Strážskom, študijný odbor 3760 6 00 prevádzka a ekonomika dopravy Operačný program: Vzdelávanie Programové obdobie:
Διαβάστε περισσότεραDIFERENCÁLNE ROVNICE Matematická analýza (MAN 2c)
Prírodovedecká fakulta Univerzity P. J. Šafárika v Košiciach Božena Mihalíková, Ivan Mojsej Strana 1 z 43 DIFERENCÁLNE ROVNICE Matematická analýza (MAN 2c) 1 Obyčajné diferenciálne rovnice 3 1.1 Úlohy
Διαβάστε περισσότεραSúčtové vzorce. cos (α + β) = cos α.cos β sin α.sin β cos (α β) = cos α.cos β + sin α.sin β. tg (α β) = cotg (α β) =.
Súčtové vzorce Súčtové vzorce sú goniometrické hodnoty súčtov a rozdielov dvoch uhlov Sem patria aj goniometrické hodnoty dvojnásobného a polovičného uhla a pridám aj súčet a rozdiel goniometrických funkcií
Διαβάστε περισσότεραRiešenia. Základy matematiky. 1. a) A = { 4; 3; 2; 1; 0; 1; 2; 3}, b) B = {4; 9; 16}, c) C = {2; 3; 5},
Riešenia Základy matematiky 1. a) A = { ; ; ; 1; 0; 1; ; }, b) B = {; 9; 16}, c) C = {; ; 5}, d) D = { 1}, e) E =.. B, C, D, F (A neobsahuje prvok 1, E obsahuje navyše prvok 1, G neobsahuje prvok 1)..
Διαβάστε περισσότεραu R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.
Pasívne prvky, L, C v obvode stredavého prúdu Čnný odpor u u prebeh prúdu a napäta fázorový dagram prúdu a napäta u u /2 /2 t Napäte zdroja sa rovná úbytku napäta na čnnom odpore. Prúd je vo fáze s napätím.
Διαβάστε περισσότεραPrednáška Fourierove rady. Matematická analýza pre fyzikov IV. Jozef Kise lák
Prednáška 6 6.1. Fourierove rady Základná myšlienka: Nech x Haφ 1,φ 2,...,φ n,... je ortonormálny systém v H, dá sa tento prvok rozvinút do radu x=c 1 φ 1 + c 2 φ 2 +...,c n φ n +...? Ako nájdeme c i,
Διαβάστε περισσότεραNajviac na koľko častí sa dá tromi priamkami rozdeliť medzikružie?
Náboj 01 Vzorové riešenia Úloha 1 J. Ak hranu kocky zväčšíme o 100%, tak o koľko percent sa zväčší jej objem? Výsledok. 700% Návod. Zväčšiť hranu a o 100% je to isté ako ju zdvojnásobiť na a. Objem pôvodnej
Διαβάστε περισσότερα1.1 Zobrazenia a funkcie
1 Teória vypočítateľnosti poznámky z prednášky #1 1.1 Zobrazenia a funkcie Definícia. Čiastočné (totálne) zobrazenie trojice (A, B, f) pre ktoré platí: f A B Ku každému vstupu a A existuje najviac jeden
Διαβάστε περισσότεραVlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca)
Odbor 9.2.1 Informatika Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca) Marián Sládek
Διαβάστε περισσότεραGoniometrické nerovnice
Ma-Go--T List Goniometrické nerovnice RNDr. Marián Macko U: Problematiku, ktorej sa budeme venovať, začneme úlohou. Máme určiť definičný obor funkcie f zadanej predpisom = sin. Máš predstavu, s čím táto
Διαβάστε περισσότεραKATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita
132 1 Absolútna chyba: ) = - skut absolútna ochýlka: ) ' = - spr. relatívna chyba: alebo Chyby (ochýlky): M systematické, M náhoné, M hrubé. Korekcia: k = spr - = - Î' pomerná korekcia: Správna honota:
Διαβάστε περισσότεραZákladné vzťahy medzi hodnotami goniometrických funkcií
Ma-Go-2-T List Základné vzťahy medzi hodnotami goniometrických funkcií RNDr. Marián Macko U: Predstav si, že ti zadám hodnotu jednej z goniometrických funkcií. Napríklad sin x = 0,6. Vedel by si určiť
Διαβάστε περισσότερα1. Komplexné čísla. Doteraz ste pracovali s číslami, ktoré pochádzali z nasledovných množín:
1. Komplexné čísla Po preštudovaní danej kapitoly by ste mali byť shopní: poznať použitie a význam komplexnýh čísel v elektrikýh obvodoh rozumieť pojmom reálna a imaginárna časť, imaginárna jednotka, veľkosť,
Διαβάστε περισσότεραTECHNICKÁ UNIVERZITA V KOŠICIACH STROJNÍCKA FAKULTA MATEMATIKA 1. Funkcia jednej premennej a jej diferenciálny počet
TECHNICKÁ UNIVERZITA V KOŠICIACH STROJNÍCKA FAKULTA MATEMATIKA časťa Funkcia jednej premennej a jej diferenciáln počet Dušan Knežo, Miriam Andrejiová, Zuzana Kimáková 200 RECENZOVALI: prof. RNDr. Jozef
Διαβάστε περισσότερα4 Reálna funkcia reálnej premennej a jej vlastnosti
Reálna unkcia reálnej premennej a jej vlastnosti Táto kapitola je venovaná štúdiu reálnej unkcie jednej reálnej premennej. Pojem unkcie patrí medzi základné pojmy v matematike. Je to vlastne matematický
Διαβάστε περισσότεραSK skmo.sk. 2009/ ročník MO Riešenia úloh domáceho kola kategórie A
SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/2010 59. ročník MO Riešenia úloh domáceho kola kategórie A 1. V obore reálnych čísel riešte sústavu rovníc x2 y = z 1, y2 z = x 1, z2 x = y 1. (Radek Horenský) Riešenie.
Διαβάστε περισσότεραObsah. 1.1 Základné pojmy a vzťahy Základné neurčité integrály Cvičenia Výsledky... 11
Obsah Neurčitý integrál 7. Základné pojmy a vzťahy.................................. 7.. Základné neurčité integrály............................. 9.. Cvičenia..........................................3
Διαβάστε περισσότεραKódovanie a dekódovanie
Kódovanie a deovanie 1 Je daná množina B={0,1,2} Zostrojte množinu B* všetkých možných slov dĺžky dva 2 Je daná zdrojová abeceda A={α,β,ϕ,τ} Navrhnite príklady aspoň dvoch prostých ovaní týchto zdrojových
Διαβάστε περισσότεραSK skmo.sk. 63. ročník Matematickej olympiády 2013/2014 Riešenia úloh domáceho kola kategórie A
SK MATEMATICKÁOLYMPIÁDA skmo.sk 63. ročník Matematickej olympiády 2013/2014 Riešenia úloh domáceho kola kategórie A 1. Číslo n je súčinom troch (nie nutne rôznych) prvočísel. Keď zväčšíme každé z nich
Διαβάστε περισσότεραTeória funkcionálneho a logického programovania
Prírodovedecká fakulta UPJŠ Košice Teória fucionálneho a logického programovania (poznámky z prednášok z akademického roka 2002/2003) prednáša: Prof. RNDr. Peter Vojtáš, DrSc. 2 TEÓRIA FUNKCIONÁLNEHO A
Διαβάστε περισσότεραLineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus
1. prednáška Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus Matematickým základom kvantovej mechaniky je teória Hilbertových
Διαβάστε περισσότερα