59. ročník Matematické olympiády 2009/2010
|
|
- Jaromír Musil
- před 6 lety
- Počet zobrazení:
Transkript
1 59. ročník Matematické olympiády 2009/2010 Řešení úloh ústředního kola kategorie P 2. soutěžní den P-III-4 Mravenci V této úloze máme spočítat zbytek, který dává jakési velké číslo po dělení číslem M= Nejprvesiprotopřipomenemezákladypočítánísezbytky. Mějmedvěceláčísla AaB.Číslamůžemejednoznačnězapsatvetvaru A= a 1 M+a 0 a B= b 1 M+b 0,kdečísla a 0, a 1, b 0, b 1 jsouceláa0 a 0, b 0 < M.Hodnoty a 0 a b 0 jsouzbytky,kterédávajíčísla AaBpoděleníčíslem M.Všimnětesi,že A ± B=(a 1 ± b 1 )M+(a 0 ± b 0 )aab=(a 1 b 1 M+ a 1 b 0 + a 0 b 1 )M+ a 0 b 0.Proto platí: A±Bdávápoděleníčíslem Mstejnýzbytekjako a 0 ±b 0 a ABdávápodělení číslem Mstejnýzbytekjako a 0 b 0. Uvedené pozorování nám v řešení úlohy umožní vyhnout se velkým číslům budeme podle potřeby sčítat, odčítat a násobit a kdykoliv při tom nějaká průběžná hodnotapřekročí M,můžememístonídálepracovatjenomsezbytkempodělení M. Pro větší přehlednost nebudeme tuto úpravu v řešení nadále zapisovat. Když tedy napříkladuvedemevřešení do cpřiřaď a+b,myslímetím do cpřiřaď((a+ b)mod M). Základní dynamické programování Budeme určovat počet různých cest vedoucích z bodu(0, 0) na všechna ostatní místamřížky.početcestvedoucíchdomísta(r, s)označíme f(r, s). Pokud(r, s)ležívněnašímřížky,nelzesetamvůbecdostataproto f(r, s)=0. Podobně f(r, s)=0probody,kdejeumístěnapřekážka.proostatnímístamůžeme postupovatnásledovně:kdyžchcemejítna(r, s),můžemetampřijítz(r 1, s)nebo z(r, s 1). Cesty vedoucí přes tato místa jsou jistě navzájem odlišné, takže příslušné počtyceststačíjednodušesečíst.platítedy f(r, s)=f(r 1, s)+f(r, s 1). Popsaným způsobem každou mapu vyřešíme s časovou složitostí O(RS), dostávámetudížřešeníscelkovoučasovousložitostí O(NRS),kde RaSjsourozměry mřížkyanpočetmřížeknavstupu. Cesty bez překážek Někdy nebývá špatné podívat se na úlohu z opačného konce. Překážky způsobují, že některé cesty nejsou použitelné. Proto nejprve spočítáme všechny cesty vedoucí na(r, s) bez ohledu na překážky a následně odečteme nepoužitelné cesty. Označme c(r, s)početcestz(0,0)do(r, s),kdyžneuvažujemežádnépřekážky. Každá cesta, která urazí v jednom směru vzdálenost r a ve druhém vzdálenost s, se jistě skládá přesně z r+s kroků. Když chceme vybrat jednu konkrétní z takových cest, musíme zvolit, kterých r z uvažovaných r + s kroků povede směrem dolů. Každému možnémuvýběruodpovídáprávějednacesta,aprotoplatí c(r, s)= ( r+s r Později si ukážeme, jak lze tuto hodnotu rychle spočítat. Dodefinujme ještě c(r, s)=0,jestliže r <0nebo s <0. 1 ).
2 Inkluze a exkluze Představtesinyní,žemámeprávějednupřekážku,atonasouřadnicích(r 1, s 1 ). Celkovýpočetcestvedoucíchpřestutopřekážkubude c(r 1, s 1 ) c(r r 1, S s 1 ), jelikožmáme c(r 1, s 1 )způsobů,jaksedostatz(0,0)kpřekážce,anásledně c(r r 1, S s 1 )způsobů,jakpokračovatvcestědále. Početvšechcest,kterépřestutopřekážkunevedou,určímetak,žeod c(r, S) odečteme počet cest, které přes překážku vedou. Následuje jedno důležité pozorování: Máme-li libovolný počet překážek, můžemejeuspořádatpodlehodnoty r i + s i.jinýmislovy,vezbytkuřešenímůžeme předpokládat,žeplatí r 1 + s 1 r 2 + s 2....Potomkaždácesta,kteráprochází překážkou číslo i, může předtím procházet jen přes překážky s čísly menšími než i. Pročtomutakje?Jednodušeproto,žekaždýmkrokemseo1zvýšísoučetobou souřadnic místa, na němž právě stojíme. Každé políčko, přes které jsme dosud šli, mátedymenšísoučetsouřadnicnežto,kdeprávějsme. Vraťmesekřešenípůvodníúlohy.Cokdybybylypřekážkyprávědvě:na(r 1, s 1 ) ana(r 2, s 2 )?Vsouladusuvedenýmpozorovánímpředpokládáme,že r 1 +s 1 r 2 +s 2. Všech cest je c(r, S). Od nich odečteme cesty, které vedou přes první překážku, těchje c(r 1, s 1 ) c(r r 1, S s 1 ).Následněodečtemetakécesty,kterévedoupřes druhoupřekážku,těchje c(r 2, s 2 ) c(r r 2, S s 2 ).Ještěalenemámesprávný výsledek. Cesty, které vedou postupně přes obě překážky, jsme totiž odečetli dvakrát. Abychom dostali správný výsledek, musíme zjistit, kolik existuje takových cest, a tento počet k aktuálnímu výsledku zase zpátky přičíst. To je ale snadné: cest, které postupněprocházejípřes(r 1, s 1 )a(r 2, s 2 ),je c(r 1, s 1 ) c(r 2 r 1, s 2 s 1 ) c(r r 2, S s 2 ).Díkytomu,jakjsmedodefinovali cprozápornévstupy,tentovztahfungujei v případech, že takové cesty neexistují. Uvedené úvahy pro jednu a dvě překážky můžeme zobecnit i pro více překážek, čímž dostaneme tzv. princip inkluze a exkluze. Nechť p(x)jepočetcest,kterévedoupřeskaždoupřekážkuzmnožiny X (a možná i přes jiné překážky). Pro libovolnou množinu X dokážeme tento počet spočítatvčaseúměrném X :stačívynásobitpočetcestz(0,0)kprvnípřekážce, početcestodprvnípřekážkykedruhé,atd.,ažpočetcestodposlednípřekážkyna místo(r, S). Abychom dostali správný výsledek úlohy, potřebujeme vzít všechny cesty. Od nich odečteme cesty vedoucí přes libovolnou jednu překážku, přičteme cesty vedoucí přes dvojice překážek, zase odečteme cesty přes trojice překážek, atd. Stručně to můžeme zapsat následovně: Hledaný počet cest je roven součtu všech hodnot ( 1) X p(x),kdesčítámepřesvšechna X {1,2,..., K. Implementací tohoto vztahu dostáváme řešení, které dokáže libovolnou mřížku s Kpřekážkamivyhodnotitvčase O(K 2 K ) zapředpokladu,žemákdispozici všechna potřebná kombinační čísla. 2
3 Vzorové řešení, první část Označme z(i) počet způsobů, jak se lze dostat k překážce i tak, abychom nešli přes žádnou překážku s číslem menším než i. Určitěplatí z(1)=c(r 1, s 1 ) cestakprvnípřekážcejistěnemůžepřecházet přes jiné překážky, proto každá možná cesta je dobrá. Předpokládejmenyní,žeužznámehodnoty z(1)až z(k 1).Jakurčithodnotu z(k)? Všechny cesty vedoucí k překážce k můžeme rozdělit do následujících navzájem disjunktních množin: 1. Cesty, které vedou přes překážku 1. 2.Cesty,kterénevedoupřespřekážku1avedoupřespřekážku2. 3.Cesty,kterénevedoupřespřekážky1ani2avedoupřespřekážku3.. k.cesty,kterénevedoupřesžádnouzpřekážek1až k 1. Všechcestkpřekážce k jecelkem c(r k, s k ).Všimnětesicest i-téhozvýše uvedenýchtypů(pronějaké i < k).kolikjichje?máme z(i)způsobů,jakselze dostatki-tépřekážce,anižbychompřešlipřesněkterouzpředcházejících,ac(r k r i, s k s i )způsobů,jaksedostatodtamtudužlibovolnoucestouke k-tépřekážce. Proto platí: z(k)=c(r k, s k ) i<k z(i) c(r k r i, s k s i ). Když už známe hodnoty z(i), analogickou úvahou bychom mohli spočítat počet cest, které neprocházejí žádnou překážkou. Při implementaci si pomůžeme jednoduchýmtrikem:přidámepřekážkučíslo K+1nasouřadnice(R, S).Potomjako z(k+1) dostaneme přesně počet hledaných cest. Totořešenízpracujejednumřížkuvčase O(K 2 ) opětzapředpokladu,že máme k dispozici všechna potřebná kombinační čísla. (Před)počítání kombinačních čísel Jednou možností je spočítat si všechna potřebná kombinační čísla pomocí vzorce ( ( a+1 b+1) = a ) ( b + a b+1) nebojinakřečenopomocípascalovatrojúhelníka.kombinační čísla se nemění, spočítáme je jednou na začátku výpočtu programu a následně je můžeme využívat během celého výpočtu. Nejjednodušší je uložit si je do dvojrozměrného pole. Při paměťovém limitu 64MBsenámvejdedopamětipřibližně16milionůcelýchčísel,cožodpovídázhruba tabulce Šikovnější řešení je založeno na pozorování, že většinu kombinačních čísel nikdy nevyužijeme. Lepší tedy bude nejprve načíst celý vstup a zjistit, která kombinační čísla potřebovat budeme. Následně budeme kombinační čísla počítat pomocí výše uvedeného vztahu a vždy, když narazíme na takové, které potřebujeme, si jeho hodnotu zapamatujeme. Pomocí tohoto triku bylo možné získat alespoň 13 bodů. 3
4 Jinou možností(která navíc postačovala i na testovací vstup 14) je počítání hodnot ( a b) pomocíjejichprvočíselnéhorozkladu:prolibovolnéprvočíslo psnadno spočítáme,kolikrátdělíkaždézčísel a!, b!a(a b)!. Dělení modulo M Kombinačníčíslamůžemepočítatipřímopodlevzorce ( ) a b = a! b!(a b)!.problém tohoto přístupu spočívá v dělení. Zatímco sčítat, odčítat a násobit modulo M je snadné, s dělením to není tak jasné. Dělení při operacích se zbytky obecně nemusí fungovat.napříkladčísla12a22dávajípoděleníčíslem10stejnýzbytek,ale12/2= 6a22/2=11užstejnýzbyteknedávají.Pokudpočítámemodulo10,paknapříklad číslo 7 vůbec nedokážeme vydělit dvěma tedy neexistuje takové x, aby 2x dávalo stejný zbytek jako 7. Vnašísituacijsmenatomaledobře,jelikožčíslo Mjeprvočíslo.Avtakovém případěumíme dělit?tzn.kekaždému aakaždému b(takovému,že0 < b < M) existujeprávějedenmožnýzbytek xtakový,že bx a (mod M).Pročtomutak je?uvažujmehodnoty0, b,2b,...,(m 1)b.Žádnédvěztěchtohodnotnemohoupo dělení Mdávatstejnýzbytek,neboťpotomby Mdělilojejichrozdíl(j i)b.toale nemůže, jelikož oba činitelé jsou menší než M a zároveň M je prvočíslo. Speciálně tedykekaždému bexistujeprávějedno xtakové,že bx 1 (mod M).Toto x budemenazývatinverznímprvkemkbabudemehoznačit b 1. Nynísnadnozjistíme,žeplatí:jestliže a/bjeceléčíslo,pakdávápodělení číslem Mstejnýzbytekjako a b 1.Kdyžtedypotřebujemeznáthodnotu ( a b) modulo M,zjistímejijako ( a! (b!) 1 ((a b)!) 1). Pokudsispočítámeprokaždé nzrozsahuod1do100000hodnoty n!a(n!) 1, dokážeme pak určit libovolné potřebné kombinační číslo v konstantním čase. Inverzní prvky Jakým způsobem najdeme inverzní prvek k danému číslu b? Můžeme použít například rozšířený Euklidův algoritmus, kde hledáme nějaké celočíselné řešení rovnice bx+my=1.jinou,jednoduššímožnostíjepoužítmaloufermatovuvětu.taříká,že když Mjeprvočíslo,potomprolibovolné b(0 < b < M)platí b M 1 1 (mod M). Noab M 1 můžemepřepsatjako b b M 2,odkudjižvidíme,žeinverznímprvkemkb je b M 2 mod M.Tutohodnotudokážemespočítatšikovnýmumocňovánímvčase O(log M). Celé vzorové řešení Začnemetím,žeprokaždé nspočítámehodnotu n!mod M apomocímalé Fermatovy věty k ní určíme inverzní prvek. Následně postupně zpracováváme mřížky ze vstupu s využitím postupu založeného na počítání čísel z(i). Toto řešení má časovousložitost O((R+S)log M+ NK 2 ). #include <algorithm> #include <vector> #include <cstdio> using namespace std; 4
5 long long modexp(long long number, long long power, long long modulus) { if (power==0) return 1LL % modulus; if (power==1) return number % modulus; long long tmp = modexp(number,power/2,modulus); tmp = (tmp*tmp) % modulus; if (power&1) tmp = (tmp*number) % modulus; return tmp; bool distless(const pair<int,int> &A, const pair<int,int> &B) { return A.first + A.second < B.first + B.second; int main() { int R, S, N, K, P= ; scanf("%d%d%d", &R, &S, &N); vector<int> fact(r+s+2); fact[0]=fact[1]=1; for (int i=2; i<r+s+2; ++i) fact[i] = (1LL * fact[i-1] * i) % P; vector<int> inverse(r+s+2); for (int i=0; i<r+s+2; ++i) inverse[i] = modexp(fact[i], P-2, P); while (N--) { scanf("%d", &K); vector< pair<int,int> > prekazky; for (int k=0; k<k; ++k) { int x, y; scanf("%d%d",&x, &y); prekazky.push_back(make_pair(x, y)); prekazky.push_back(make_pair(r, S)); sort(prekazky.begin(), prekazky.end(), distless); vector<long long> G(K+1); for (int k=0; k<=k; ++k) { int dx = prekazky[k].first, dy = prekazky[k].second; G[k] = (((1LL * fact[dx+dy] * inverse[dx]) % P) * inverse[dy]) % P; for (int k=0; k<k; ++k) for (int l=k+1; l<=k; ++l) { int dx = prekazky[l].first - prekazky[k].first, dy = prekazky[l].second - prekazky[k].second; if (dx<0 dy<0) continue; long long C = (((1LL * fact[dx+dy] * inverse[dx]) % P) * inverse[dy]) % P; G[l] -= G[k] * C; G[l] %= P; if (G[l] < 0) G[l] += P; printf("%ld\n", G[K]); return 0; 5
6 P-III-5 Hurikán Je zřejmé, že kiribatské ostrovy a aktuálně stojící mosty mezi nimi tvoří neorientovaný graf. Když spadne některý z mostů, z grafu zmizí příslušná hrana. Mezi vrcholy, které tvoří jednu komponentu souvislosti grafu, existuje spojení po mostech. Potřebujeme zabezpečit dostatek převozníků na dopravu mezi různými komponentami. Má-li graf S komponent, nejmenší postačující počet převozníků je S 1(budou například jezdit mezi první komponentou a všemi ostatními). Proto nám stačí zjistit pro každý den, z kolika komponent souvislosti se skládá graf. Přímočaré řešení Počet komponent grafu lze určit prohledáváním do hloubky nebo do šířky. Začneme v prvním vrcholu a postupně obarvujeme všechny vrcholy, do nichž se dá z něho dostat. Pokud zůstaly nějaké neobarvené vrcholy, některý z nich si vybereme a začneme z něho znovu prohledávat další komponentu. Tento postup opakujeme, dokud neobarvíme celý graf. Počet komponent je určen tím, kolikrát jsme museli začít prohledávat. Na popsaném principu je založeno jednoduché řešení úlohy: postupně pro každý den odstraníme z grafu hranu odpovídající tomu mostu, který právě spadl, a prohledáváním zjistíme aktuální počet komponent souvislosti. To znamená, že potřebujeme(k + 1)-krát prohledat celý graf. Časová složitost tohoto řešení je proto O(K (M+ N)). Výpočet odzadu Podívejmesenynínaúlohuodkonce.Začnemesgrafem,vněmžchybívšech K mostů s porušenou statikou. Budeme postupovat od posledního dne k prvnímu a postupně přidávat mosty do grafu. Zatím je toto řešení stejně dobré jako to předcházející, jenom dostáváme výsledky v opačném pořadí. Přidáním hrany do grafu se mohou dvě komponenty spojit do jedné(pokud tato hrana vedla mezi vrcholy z dvou různých komponent), nebo se rozdělení na komponenty vůbec nezmění(pokud hrana vedla mezi dvěma vrcholy téže komponenty). Pro získání rychlejšího řešení budeme proto potřebovat datovou strukturu, která nám umožní efektivně zjišťovat, zda jsou dva vrcholy ve stejné komponentě, a také spojovat dvojice komponent. Union-Find Nachvíliteďzapomeneme,žesejednáograf,abudemeřešitobecnějšíúlohu. Komponentu nazveme množinou, její vrcholy budou prvky této množiny. Množinu prvků si budeme reprezentovat stromem. Zavěsíme ho za kořen, který označíme jako reprezentanta množiny. Z ostatních prvků množiny vede vždy jedna hrana směrem nahoru, do nadřízeného prvku. Nadřízený prvek je blíže ke kořeni nebo je to dokonce kořen stromu. Když vyjdeme z libovolného prvku množiny a budeme procházet v hierarchii stále výše(vždy do nadřízeného prvku), musíme skončit v reprezentantovi množiny. To znamená, že dva prvky patří do stejné množiny právě tehdy, když uvedeným postupem z obou dojdeme do téhož reprezentanta. 6
7 Dvě množiny sloučíme do jedné tak, že reprezentanta jedné z nich zavěsíme pod reprezentanta druhé množiny(nastavíme mu ho jako nadřízeného). Spojováním množin mohou vznikat dlouhé řetězce prvků. V takovém případě bude mít hledání reprezentantů až lineární časovou složitost vzhledem k velikosti množiny. Ukážeme si dvě úpravy, které nám přinesou zrychlení. Při slučování dvou množin zavěsíme vždy strom s menší hloubkou pod hlubší strom. To zajistí, že vznikající stromy budou mít hloubku řádově logaritmickou vzhledem k počtu prvků. Další možností je zvolit si vždy náhodně, který strom zavěsíme pod který. Potom budou také v průměrném případě vznikat stromy s malou hloubkou. Druhým trikem je komprese cesty. Po nalezení reprezentanta ho nastavíme všem prvkům, jimiž jsme cestou nahoru prošli, jako jejich přímého nadřízeného. Pomocí pokročilejších matematických metod lze dokázat, že průměrná časová složitost hledání reprezentanta s využitím obou uvedených zrychlení bude O(α(n)), kde n je velikost množiny a α je inverzní Ackermannova funkce. Pro prakticky využitelná čísla nabývá její hodnota nejvýše 4, proto ji můžeme považovat za konstantu. Celková časová složitost tohoto algoritmu je proto O(N + M α(n)), případně O(N + M + Kα(N)), když nejprve všechny stabilní mosty zpracujeme jedním prohledáváním. V programu uvedeném na konci tohoto řešení používáme místo spojování podle hloubek stromů spojování náhodné snáze se implementuje a očekávaná časová složitost je stejná. Existuje i jiný způsob, jak lze napsat řešení, které získá plný počet bodů. Stejně jako v předchozím řešení budeme mosty zpracovávat od konce a zjišťovat počet komponent souvislosti grafu. To budeme dělat jednoduše tak, že si ke každému vrcholu budeme pamatovat číslo jeho komponenty a ke každé komponentě seznam jejích vrcholů. Vždy, když přidáváme hranu, ověříme, zda jsou oba její konce ve stejné komponentě.pokudano,nicseneděje,pokudne, přebarvíme celoumenšíkomponentu tzn. každému jejímu vrcholu změníme přiřazené číslo na číslo větší komponenty. Všimněte si, že vždy, když nějaký vrchol přebarvíme, dostane se tím do komponenty alespoň dvojnásobné velikosti, než v jaké byl dosud. Proto každý vrchol přebarvímenejvýšelog 2 Nkrát,takžetotořešenímáčasovousložitost O(M+Nlog N). #include <cstdio> #include <cstdlib> using namespace std; #define MAX int N, M, K, components; int E[MAX][2]; int boss[max], D[MAX], damaged[max], answer[max]; int sef(int x) { if (x == boss[x]) return x; 7
8 else return boss[x] = sef(boss[x]); void join(int x, int y) { x = sef(x); y = sef(y); if (x == y) return; --components; if (rand() & 1) boss[x] = y; else boss[y] = x; int main() { scanf("%d%d", &N, &M); components = N; for (int n=1; n<=n; ++n) boss[n]=n; for (int m=1; m<=m; ++m) scanf("%d%d", &E[m][0], &E[m][1]); scanf("%d", &K); for (int k=1; k<=k; ++k) { scanf("%d", &D[k]); damaged[d[k]] = 1; for (int m=1; m<=m; ++m) if (!damaged[m]) join(e[m][0], E[m][1]); answer[0] = components-1; for (int k=k; k>=1; --k) { join(e[d[k]][0], E[D[k]][1]); answer[k+1-k] = components-1; for (int k=k; k>=0; --k) printf("%d\n", answer[k]); return 0; 8
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh krajského kola kategorie P P-II-1 Tulipány Budeme řešit o něco obecnější úlohu: dovolíme si předepsat, zda má na n-té pozici být tulipán, a pokud
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh ústředního kola kategorie P 2. soutěžní den P-III-4 Výlet Abychom našli požadovaný výlet délky 4, stačí najít dvě hvězdy a a b, které mají dva společné
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_145_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
Union-Find problém. Kapitola 1
Kapitola 1 Union-Find problém Motivace: Po světě se toulá spousta agentů. Často se stává, že jeden agent má spoustu jmen/přezdívek, které používá například při rezervaci hotelu, restaurace, na návštěvě
Prohledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh ústředního kola kategorie P 1. soutěžní den P-III-1 Půl království Pokud v hledané polorovině neleží všechny zadané body, můžeme bez újmy na obecnosti
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
67. ročník Matematické olympiády 2017/2018
67. ročník Matematické olympiády 2017/2018 Řešení úloh ústředního kola kategorie P 1. soutěžní den P-III-1 Kapitánka hledá posádku Úlohu lze vyřešit tak, že vyzkoušíme všechny možnosti, jak může Kapitánka
Algoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
Úlohy krajského kola kategorie C
67. ročník matematické olympiády Úlohy krajského kola kategorie C 1. Najděte nejmenší přirozené číslo končící čtyřčíslím 2018, které je násobkem čísla 2017. 2. Pro celá čísla x, y, z platí x 2 + y z =
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
Poslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
1. Toky, řezy a Fordův-Fulkersonův algoritmus
1. Toky, řezy a Fordův-Fulkersonův algoritmus V této kapitole nadefinujeme toky v sítích, odvodíme základní věty o nich a také Fordův-Fulkersonův algoritmus pro hledání maximálního toku. Také ukážeme,
Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie
Obsah Počítání modulo n a jeho časová složitost 3. a 4. přednáška z kryptografie 1 Počítání modulo n - dokončení Umocňování v Zn 2 Časová složitost výpočtů modulo n Asymptotická notace Základní aritmetické
Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
Univerzita Karlova v Praze Pedagogická fakulta
Univerzita Karlova v Praze Pedagogická fakulta SEMINÁRNÍ PRÁCE Z METOD ŘEŠENÍ 1 TEORIE ČÍSEL 000/001 Cifrik, M-ZT Příklad ze zadávacích listů 10 101 Dokažte, že číslo 101 +10 je dělitelné číslem 51 Důkaz:
Kongruence na množině celých čísel
121 Kapitola 4 Kongruence na množině celých čísel 4.1 Relace kongruence na množině celých čísel Vraťme se k úvahám o dělení se zbytkem. Na základní škole jsme se naučili, že když podělíme číslo 11 číslem
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...
Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)
1. Lineární diferenciální rovnice řádu n [MA1-18:P1.7] rovnice typu y n) + p n 1 )y n 1) +... + p 1 )y + p 0 )y = q) 6) počáteční podmínky: y 0 ) = y 0 y 0 ) = y 1 y n 1) 0 ) = y n 1. 7) Věta 1.3 : Necht
DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
Věta o dělení polynomů se zbytkem
Věta o dělení polynomů se zbytkem Věta. Nechť R je okruh, f, g R[x], přičemž vedoucí koeficient polynomu g 0 je jednotka okruhu R. Pak existuje jediná dvojice polynomů q, r R[x] taková, že st(r) < st(g)
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Průvodce studiem. do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat
6. Extrémy funkcí více proměnných Průvodce studiem Hledání extrémů je v praxi často řešená úloha. Např. při cestě z bodu A do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat
INFORMATIKA. Vybrané podposloupnosti
INFORMATIKA Vybrané podposloupnosti (Úlohy z MO kategorie P, 30. část) PAVEL TÖPFER Matematicko-fyzikální fakulta UK, Praha V našem seriálu putujícím po zajímavých úlohách Matematické olympiády - kategorie
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
Binární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
Vzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
Algoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
Základy algoritmizace a programování
Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
Přednáška 3: Limita a spojitost
3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice
TGH07 - Chytré stromové datové struktury
TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 1. dubna 2014 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním
Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30
Počítání modulo polynom 3. přednáška z algebraického kódování Alena Gollová, TIK Počítání modulo polynom 1/30 Obsah 1 Polynomy nad Zp Okruh Zp[x] a věta o dělení se zbytkem 2 Kongruence modulo polynom,
1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:
Opakování středoškolské matematiky Slovo úvodem: Tato pomůcka je určena zejména těm studentům presenčního i kombinovaného studia na VŠFS, kteří na středních školách neprošli dostatečnou průpravou z matematiky
55. ročník matematické olympiády
. ročník matematické olympiády! " #%$'&( *$,+ 1. Najděte všechny dvojice celých čísel x a y, pro něž platí x y = 6 10.. Je dán rovnostranný trojúhelník ABC o obsahu S a jeho vnitřní bod M. Označme po řadě
Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008
Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování študenti MFF 15. augusta 2008 1 15 Základy lineárního programování Požadavky Simplexová metoda Věty o dualitě (bez důkazu)
Numerická matematika 1
Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................
TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TOKY V SÍTÍCH II Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 10 Evropský sociální fond Praha & EU: Investujeme do vaší
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří
TGH07 - Chytré stromové datové struktury
TGH07 - Chytré stromové datové struktury Jan Březina Technical University of Liberec 5. dubna 2017 Prioritní fronta Datová struktura s operacemi: Odeber Minum (AccessMin, DeleteMin) - vrat prvek s minimálním
Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
Hledáme efektivní řešení úloh na grafu
Hledáme efektivní řešení úloh na grafu Mějme dán graf následující úlohy: G = ( V, E), chceme algoritmicky vyřešit Je daný vrchol t dosažitelný z vrcholu s? Pokud ano, jaká nejkratší cesta tyto vrcholy
Dynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Klauzurní část školního kola kategorie A se koná
56. ročník matematické olympiády Úlohy klauzurní části školního kola kategorie 1. rčete všechna reálná čísla s, pro něž má rovnice 4x 4 20x 3 + sx 2 + 22x 2 = 0 čtyři různé reálné kořeny, přičemž součin
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
2.7.6 Rovnice vyšších řádů
6 Rovnice vyšších řádů Předpoklady: 50, 05 Pedagogická poznámka: Pokud mám jenom trochu čas probírám látku této hodiny ve dvou vyučovacích hodinách V první probíráme separaci kořenů, v druhé pak snížení
Limita a spojitost funkce
Limita a spojitost funkce Základ všší matematik Dana Říhová Mendelu Brno Průřezová inovace studijních programů Lesnické a dřevařské fakult MENDELU v Brně (LDF) s ohledem na disciplin společného základu
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.
Kapitola 4 Tělesa Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty. Všechna čísla byla reálná, vektory měly reálné souřadnice, matice měly reálné prvky. Také řešení soustav
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.
1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek
Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény
68. ročník Matematické olympiády 2018/2019
68. ročník Matematické olympiády 2018/2019 Řešení úloh domácího kola kategorie P P-I-1 Bourání města Úlohu budeme popisovat v řeči teorie grafů.* V této terminologii se každé křižovatce říká vrchol a každé
Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly
Rozšiřování a krácení zlomků Rozšiřování vynásobení čitatele i jmenovatele stejným číslem různým od nuly rozšířený zlomek vznikl tak, že jsme čitatel i jmenovatel původního zlomku vynásobili číslem rozšířený
VELIKOST VEKTORU, POČETNÍ OPERACE S VEKTORY
VELIKOST VEKTORU, POČETNÍ OPERACE S VEKTORY Vektoru můžeme přisoudit velikost. S vektory také můžeme provádět početní operace, které jsme zvyklí provádět s čísly, tzn. že je možné je sčítat, odčítat a
Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
Otázku, kterými body prochází větev implicitní funkce řeší následující věta.
1 Implicitní funkce Implicitní funkce nejsou funkce ve smyslu definice, že funkce bodu z definičního oboru D přiřadí právě jednu hodnotu z oboru hodnot H. Přesnější termín je funkce zadaná implicitně.
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
pro každé i. Proto je takových čísel m právě N ai 1 +. k k p
KOMENTÁŘE ÚLOH 43. ROČNÍKU MO, KATEGORIE A 1. Přirozené číslo m > 1 nazveme k násobným dělitelem přirozeného čísla n, pokud platí rovnost n = m k q, kde q je celé číslo, které není násobkem čísla m. Určete,
HL Academy - Chata Lopata Emu (Brkos 2012) Řetězové zlomky / 27
Řetězové zlomky HL Academy - Chata Lopata 2012 13.2. 18.2.2012 Emu (Brkos 2012) Řetězové zlomky 13.2. 18.2.2012 1 / 27 Obsah 1 Úvod 2 Základní pojmy 3 Konečné řetězové zlomky Sblížené zlomky Euklidův algoritmus
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_144_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
Pomocný text. Polynomy
Pomocný text Polynomy Tato série bude o polynomech a to zejména o polynomech jedné proměnné (pokud nebude uvedeno explicitně, že jde o polynom více proměnných). Formálně je někdy polynom jedné proměnné
4EK213 Lineární modely. 10. Celočíselné programování
4EK213 Lineární modely 10. Celočíselné programování 10.1 Matematický model úlohy ILP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
Výběr báze. u n. a 1 u 1
Výběr báze Mějme vektorový prostor zadán množinou generátorů. To jest V = M, kde M = {u,..., u n }. Pokud je naším úkolem najít nějakou bázi V, nejpřímočařejším postupem je napsat si vektory jako řádky
4. Trojúhelníkový rozklad p. 1/20
4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet
Soustavy lineárních rovnic
Soustavy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních diferenciálních rovnic y = a (x)y + a (x)y + + a n (x)y n + f (x) y = a (x)y + a (x)y + + a n (x)y n + f (x). y n = a
Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?
Kapitola 9 Matice a počet koster Graf (orientovaný i neorientovaný) lze popsat maticí, a to hned několika různými způsoby. Tématem této kapitoly jsou incidenční matice orientovaných grafů a souvislosti
Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ
ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ Parametrické vyjádření přímky v rovině Máme přímku p v rovině určenou body A, B. Sestrojíme vektor u = B A. Pro bod B tím pádem platí: B = A + u. Je zřejmé,
O dělitelnosti čísel celých
O dělitelnosti čísel celých 6. kapitola. Nejmenší společný násobek In: František Veselý (author): O dělitelnosti čísel celých. (Czech). Praha: Mladá fronta, 1966. pp. 73 79. Persistent URL: http://dml.cz/dmlcz/403569
TGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
Přijímací zkouška na navazující magisterské studium Studijní program Fyzika obor Učitelství fyziky matematiky pro střední školy
Přijímací zkouška na navazující magisterské studium 013 Studijní program Fyzika obor Učitelství fyziky matematiky pro střední školy Studijní program Učitelství pro základní školy - obor Učitelství fyziky
[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).
Grupy, tělesa grupa: množina s jednou rozumnou operací příklady grup, vlastnosti těleso: množina se dvěma rozumnými operacemi příklady těles, vlastnosti, charakteristika tělesa lineární prostor nad tělesem
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.
Těleso racionálních funkcí
Těleso racionálních funkcí Poznámka. V minulém semestru jsme libovolnému oboru integrity sestrojili podílové těleso. Pro libovolné těleso R je okruh polynomů R[x] oborem integrity, máme tedy podílové těleso
Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla
Ramseyovy věty Martin Mareš Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla na mé letošní přednášce z Kombinatoriky a grafů I Předpokládá, že čtenář se již seznámil se základní
Návrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,
Komplexní čísla Množinu všech uspořádaných dvojic (x, y) reálných čísel x, y nazýváme množinou komplexních čísel C, jestliže pro každé dvě takové dvojice (x, y ), (x 2, y 2 ) je definována rovnost, sčítání
2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2
Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací
+ 2y. a y = 1 x 2. du x = nxn 1 f(u) 2x n 3 yf (u)
Diferenciální počet příklad 1 Dokažte, že funkce F, = n f 2, kde f je spojitě diferencovatelná funkce, vhovuje vztahu + 2 = nf ; 0 Řešení: Označme u = 2. Pak je F, = n fu a platí Podle vět o derivaci složené
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška
Úlohy krajského kola kategorie A
62. ročník matematické olympiády Úlohy krajského kola kategorie A 1. Je dáno 21 různých celých čísel takových, že součet libovolných jedenácti z nich je větší než součet deseti ostatních čísel. a) Dokažte,