INSTYTUT BADAŃ SYSTEMOWYCH PAN WYDZIA L MATEMATYKI I NAUK INFORMACYJNYCH POLITECHNIKI WARSZAWSKIEJ. Algorytmy. i podstawy programowania

Wielkość: px
Rozpocząć pokaz od strony:

Download "INSTYTUT BADAŃ SYSTEMOWYCH PAN WYDZIA L MATEMATYKI I NAUK INFORMACYJNYCH POLITECHNIKI WARSZAWSKIEJ. Algorytmy. i podstawy programowania"

Transkrypt

1 MAREK GAGOLEWSKI INSTYTUT BADAŃ SYSTEMOWYCH PAN WYDZIA L MATEMATYKI I NAUK INFORMACYJNYCH POLITECHNIKI WARSZAWSKIEJ Algorytmy podstawy programowana 4. Wskaźnk dynamczna alokacja pam ec. Proste algorytmy sortowana tablc Matera ly dydaktyczne dla studentów matematyk na Wydzale Matematyk Nauk Informacyjnych Poltechnk Warszawskej Copyrght Marek G agolewsk Ths work s lcensed under a Creatve Commons Attrbuton 3.0 Unported Lcense.

2 SPIS TREŚCI 0 Sps treśc 4.1. Dynamczna alokacja pamec Organzacja pamec komputera Wskaźnk Przydza l zwalnane pamec ze sterty Tablce Przekazywane tablc funkcjom Proste algorytmy sortowana tablc Sortowane przez wybór Sortowane przez wstawane Sortowane babelkowe Efektywność oblczenowa Ćwczena Wskazówk odpowedz do ćwczeń

3 4.1. DYNAMICZNA ALOKACJA PAMIECI Dynamczna alokacja pam ec Organzacja pam ec komputera W drugm rozdzale skryptu dowedzelśmy se, że w pamec operacyjnej komputera przechowywane sa ne tylko dane, ale kod maszynowy programów. Podstawowa jednostka pamec jest komórka o rozmarze jednego bajta. Każda komórka pamec posada swój adres, który jest reprezentowany we wspó lczesnych komputerach za pomoca 32- lub 64-btowej lczby ca lkowtej. Z punktu wdzena każdego programu można wyróżnć nastepuj acy podza l pul adresowej pamec (w tzw. archtekturze von Neumanna): kod programu nformacje nterpretowane sa tutaj jako nstrukcje procesora, stos (ang. stack) gdze przechowywane sa wartośc zmennych lokalnych funkcj, sterta (ang. heap) gdze znajduja se dane dynamczne przydzelane (alokowane) na prośbe programu (zob. dalej), cześć nedostepna zarzadzana przez system operacyjny (m.n. dane nnych programów). Zatem każdy program przechowuje dane potrzebne do wykonywana swych czynnośc na stose sterce. Stos jest cześc a pamec operacyjnej, na której dane umeszczane kasowane sa w porzadku ostatn na wejścu, perwszy na wyjścu (LIFO, ang. last-n-frst-out). Umeszczane kasowane danych na stose odbywa se automatyczne. Każda wywo lywana funkcja tworzy na stose mejsce dla swoch zmennych lokalnych. Gdy funkcja kończy dza lane, usuwa z nego te nformacje (to dlatego zmenne lokalne przestaja wtedy stneć). Przyjrzyjmy se rozszerzonej wersj lustracj z poprzednego rozdza lu (rys. 4.1). Po lewej strone wdzmy fragment funkcj man(), w której zosta ly zadeklarowane zmenne x, y, z. Umeszczone sa one na dole stosu (jako perwsze w programe). Gdy funkcja ta wywo luje f(), na stose tworzone jest mejsce dla zmennych n, m x. Gdy f() kończy swe dza lane, sa one ze stosu automatyczne usuwane. n,m,x... nt x = 8; nt y = 4; nt z = f(x, y); nt f(nt n, nt m) { nt x = n m; return x; } x,y,z f() Poczatek stosu Rys Zas eg zmennych Wskaźnk Każda zmenna ma przyporzadkowan a komórke (badź komórk) pamec, w której przechowuje swoje dane, np. zmenna typu nt zajmuje najcześcej 4 take komórk (4 bajty). Fzyczny adres zmennej (czyl numer komórk) można odczytać za pomoca operatora &.

4 4.1. DYNAMICZNA ALOKACJA PAMIECI 2 nt x; cout << " x znajduje sę pod adresem " << & x << endl ; // np. 0 x e 3 d 3 0 d b c Przypomnjmy, że 0xe3d30dbc oznacza lczbe ca lkowta zapsana w systeme szesnastkowym. W systeme dzesetnym jest ona równa Co ważne, przy kolejnym uruchomenu programu może to być nna wartość. Nas jednak nteresuje tutaj fakt, że jest to zwyczajna lczba. Każda zmenna ma zatem swoje mejsce na mape (tzn. w pamec komputera), znajdujace se pod pewnym adresem (np. na ul. Koszykowej 75 w Warszawe). Operator & pozwala wec uzyskać nformacje o pozycj danej zmennej. Jeszcze naczej: zmenna to budynek magazynu w którym można przechowywać towar określonego rodzaju, np. cukerk. Adres zmennej to wspó lrzedne GPS tegoż magazynu. Specjalny typ danych do przechowywana nformacj o adresach nnych zmennych ( wspó lrz ednych GPS ) określonego typu zwany jest typem wskaźnkowym. Oznacza se go przez dodane symbolu * (gwazdka) bezpośredno po nazwe typu. Na przyk lad, zadeklarowane zmennej typu nt oznacza stworzene zmennej przechowujacej fzyczny adres w pamec komputera pewnej lczby ca lkowtej (wspó lrz edne GPS pewnego magazynu do przechowywana cukerków), czyl wskaźnka na zmenna typu nt. Zapam etaj Istneje specjalne mejsce w pamec o adrese 0 (NULL, czarna dzura ), do którego odwo lane se podczas dza lana programu powoduje wystapene b l edu. Czesto używa se tego adresu np. do zancjowana wskaźnków celem oznaczena, że poczatkowo ne wskazuja one na żadne konkretne mejsce. Na zmennych wskaźnkowych zosta l określony tzw. operator wy luskana, (ne mylć z gwazdka modyfkujac a znaczene typu!), dzek któremu możemy odczytać, co se znajduje pod danym adresem pamec (co znajduje se w jakmś magazyne, którego znamy tylko wspó lrz edne GPS). Przyjrzyjmy se ponższemu przyk ladow. Tworzone sa dwe zmenne: jedna typu ca lkowtego, a druga wskaźnkowa. Ich rozmeszczene w pamec (a dok ladnej na stose, sa to bowem zmenne lokalne jakejś funkcj) przedstawa rys Każda z tych zmennych umeszczona jest pod jakmś adresem w pamec RAM można go odczytać za pomoca operatora &. 1 nt x = 100; 2 nt wskx = &x; 3 Lstng 4.1. Wy luskane danych spod danego adresu 4 cout << wskx << endl ; // np. 0 x d f cout << wskx << endl ; // cout << x << endl ; // 100 Wypsane wartośc wskaźnka oznacza wypsane adresu, na który wskazuje. Wypsane zaś wy luskanego wskaźnka powoduje wydrukowane wartośc komórk pamec, na która pokazuje wskaźnk. Jako że zmenna typu nt u nas ma rozmar 4 bajtów, adres nastepnej zmennej (wskx) jest o 4 jednostk wekszy od adresu x.

5 4.1. DYNAMICZNA ALOKACJA PAMIECI 3 wskx 0xdf x 0xdf (nt*) 0xdf (nt) 100 Rys Zawartość pam ec komputera w programe z lstngu 4.1 Aby jeszcze lepej zrozumeć omawane zagadnene, rozważmy fragment kolejnego programu. Lstng 4.2. Proste operacje z użycem wskaźnków 1 nt x, y; 2 nt w; 3 w = &x; // w = a d r e s x ( n e c h w w s k a z u j e na zmenna x ) 4 w = 1; // wstaw 1 tam, g d z e w s k a z u j e t e r a z w 5 w = &y; // w = a d r e s y ( n e c h w w s k a z u j e na zmenna y ) 6 w = 2; // wstaw 2 tam, g d z e w s k a z u j e t e r a z w Zawartość pamec po wykonanu kolejnych ln kodu przedstawa rys Tym razem za pomoca operatora wy luskana zapsujemy dane do komórek pamec, na które pokazuje wskaźnk w. Zadane Prześledź pokazane rysunk bardzo uważne. Wskaźnk sa nezmerne stotnym elementem jezyka C++.

6 4.1. DYNAMICZNA ALOKACJA PAMIECI 4 1: nt x, y; 2: nt w; w 0xdf y 0xdf x 0xdf (nt*)? (nt)? (nt)? 3: w = &x; w 0xdf y 0xdf x 0xdf (nt*) 0xdf (nt)? (nt)? 4: w = 1; w 0xdf y 0xdf x 0xdf (nt*) 0xdf (nt)? (nt) 1 5: w = &y; w 0xdf y 0xdf x 0xdf (nt*) 0xdf (nt)? (nt) 1 6: w = 2; w 0xdf y 0xdf x 0xdf (nt*) 0xdf (nt) 2 (nt) 1 Rys Zawartość pam ec po wykonanu kolejnych nstrukcj z lstngu 4.2

7 4.1. DYNAMICZNA ALOKACJA PAMIECI 5 Przyk lad z rozdz. 3 (cd.). W poprzednm rozdzale rozważalśmy funkcje, która s luży la do zamany wartośc dwóch zmennych ca lkowtych. Przypomnjmy, że prawd lowe rozwazane tego problemu wymaga lo użyca ne argumentów przekazanych przez wartość, ale przez referencje. Równe skutecznym, acz w tym wypadku może neco mnej eleganckm, jest użyce w tym przypadku wskaźnków. 1 vod zamen ( nt x, nt y) { 2 nt t = x; 3 x = y; 4 y = t; 5 } 6 7 nt man () { 8 nt n = 1, m = 2; 9 zamen (&n, &m); // p r z e k a z a n e argumentów p r z e z w s k a ź n k 10 cout << n << ", " << m << endl ; 11 return 0; 12 } Dzek temu, że przekazalśmy funkcj zamen() adresy zmennych zadeklarowanych w funkcj man(), możemy ne tylko odczytywać, ale nadpsywać tutaj ch wartośc. Omnelśmy tym samym ogranczena przekazywana argumentów przez wartość (kopowane) dostep do orygnalnych zmennych mamy tutaj w sposób pośredn, tj. za pomoca operatora wy luskana. Cekawostka Pam etamy, że aby dostać s e do konkretnego pola struktury, należy użyć operatora. (kropk). Jeśl mamy dost ep do wskaźnka na struktur e, możemy użyć do tego celu operatora >. struct Punkt { double x; double y; }; //... ( np. man ( ) )... Punkt p; Punkt wp = &p; // w s k a ź n k na p wp >x = 1.0; // t o samo, co ( wp ). x = 1. 0 d r u g e m n e j wygodne wp >y = 2.0; // t o samo, co ( wp ). y = 2. 0 // Przydza l zwalnane pamec ze sterty Oprócz ścśle określonej na etape psana programu lośc danych na stose, można równeż dysponować pamec a na sterce, por. s. 1. Mejsce na nasze dane może być przydzelane (alokowane) dynamczne podczas dza lana programu za pomoca operatora new. Po użycu należy je zwolnć za pomoca operatora delete.

8 4.1. DYNAMICZNA ALOKACJA PAMIECI 6 Zapam etaj Zaalokowany obekt bedze stna l w pamec nawet po wyjścu z funkcj, w której go stworzylśmy! Dlatego należy pametać, aby go usunać w pewnym mejscu kodu. Oto, w jak sposób możemy dokonać alokacj dealokacj pam ec dla jednego obektu. typ obekt = new typ ; // a l o k a c j a ( new z w r a c a w s k a ź n k na p r z y d z e l o n e m e j s c e w p a m e c ) //... delete obekt ; // z w o l n e n e p a m e c Co bardzo ważne, możemy w ten sposób równeż przydzelć pameć na wele obektów nastepuj acych kolejno po sobe. nt n = 4; typ obekt = new typ [n]; // a l o k a c j a ( z w r a c a w s k a ź n k na p e r w s z y z o b e k t ó w ) //... delete [] obekt ; // uwaga na,, [ ] w e l e o b e k t ó w! Za pomoca powyższego kodu utworzylśmy cag obektów określonego typu, czyl naczej tablce Tablce Do tej pory przechowywalśmy dane używajac pojedynczych zmennych. By ly to tzw. zmenne skalarne (atomowe). Pojedyncza zmenna odpowada la jednej jednostce nformacj (lczbe, wartośc logcznej, z lożonej strukturze, wskaźnkow). Czesto jednak w naszych programach bedze zachodzć potrzeba rozważena cagu n zmennych tego samego typu, gdze n nekoneczne mus być znane z góry. Dla przyk ladu, rozważmy fragment programu dokonujacy podsumowana rocznych zarobków pewnego dość obrotnego studenta. 1 double zarobk1, zarobk2, /... /, zarobk12 ; 2 // d e k l a r a c j a 12 z m e n n y c h 3 zarobk1 = ; // s t y c z e ń 4 zarobk2 = ; // l u t y 5 //... 6 zarobk12 = ; // g r u d z e ń 7 8 double suma = 0. 0; 9 suma += zarobk1 ; 10 suma += zarobk2 ; 11 // suma += zarobk12 ; cout << " Zarobłem w 2012 r. " << suma << " zł."; Dochód z każdego mesaca przechowywany jest w oddzelnej zmennej. Netrudno zauważyć, że operowane na nch ne jest zbyt wygodne. Ma lo tego, dość żmudne by loby rozszerzane funkcjonalnośc takego programu na przypadek obejmujacy podsumowane np. zarobków z 2,3,... lat.

9 4.1. DYNAMICZNA ALOKACJA PAMIECI 7 Rozwazane tego problemu może być jednak bardzo czytelne zapsane z użycem dynamczne alokowanych tablc, które sa reprezentacja znanych nam obektów matematycznych: cagów skończonych badź wektorów. Wemy, że za pomoca operatora new możemy przydzelć pameć dla n 1 obektów określonego typu. Operator ten zwraca wskaźnk na perwszy element takego cagu. Pozostaje tylko odpowedzeć sobe na pytane, w jak sposób możemy se dostać do kolejnych elementów. double zarobk = new double [ 12]; // z a r o b k w s k a z n k na p e r w s z y e l e m e n t c a g u zarobk = ; // wprowadź z a r o b k w p e r w s z y m m e s a c u // co d a l e j? delete [] zarobk ; // z w o l n e n e p a m e c Przypomnjmy, wskaźnk jest po prawdze lczba ca lkowta. Okazuje se, że zosta la określona na nm operacja dodawana. I tak zarobk+, gdze jest lczba ca lkowta neujemna, oznacza podaj adres -tego obektu z cagu. Tym samym zarobk+0 jest tym samym, co po prostu zarobk (adresem perwszego elementu), a zarobk+n 1, adresem ostatnego elementu z n-elementowego cagu. Wobec powyższego, fragment perwotnej wersj programu zwazany z wprowadzenem zarobków możemy zapsać w nastepuj acy sposób: double zarobk = new double [ 12]; // z a r o b k w s k a z n k na p e r w s z y e l e m e n t c a g u ( zarobk +0) = ; // wprowadź z a r o b k w p e r w s z y m m e s a c u ( zarobk +1) = ; // wprowadź z a r o b k w drugm m e s a c u //... ( zarobk +11) = ; // wprowadź z a r o b k w o s t a t n m m e s a c u //... delete [] zarobk ; // z w o l n e n e p a m e c Zapam etaj Wygodnejszy dostep do poszczególnych elementów tablcy możemy uzyskać za pomoca operatora ndeksowana, [ ]. Jeśl t jest tablca (a ścślej: wskaźnkem na perwszy element cagu obektów przydzelonych dynamczne), to (t+) możemy zapsać równoważne przez t[]. Elementy tablcy sa numerowane od 0 do n 1, gdze n to rozmar tablcy. Operator ndeksowana przyjmuje za argument dowolna wartość ca lkowta (np. sta l a badź wyrażene arytmetyczne). Każdy element tablcy traktujemy tak, jakby by l zwyk l a zmenna taka, z która do tej pory melśmy do czynena. Informacja W jezyku C++ ne ma mechanzmów sprawdzana poprawnośc ndeksów! Nastepu- jacy kod być może (ne wadomo) ne spowoduje b l edu natychmast po uruchomenu. 1 nt t = new nt [5]; 2 t[ 100] = 15123; // : ( 3 t [10000] = 25326; // : ( 4 delete [] t;

10 4.1. DYNAMICZNA ALOKACJA PAMIECI 8 Powyższe nstrukcje jednak zmenaja wartośc komórek pamec reprezentujacych dane nnych obektów. Skutk tego dza lana moga se objawć w nnym mejscu programu, powodujac neprzewdywalne trudne do wykryca b l edy. Cekawostka Nech t bedze wskaźnkem na pewen typ. Zauważmy, że zaps t+ ne oznacza koneczne, że chodz nam o adres przechowywany w zmennej wskaźnkowej t plus jeden bajt. Operacja dodawana berze pod uwage typ zmennej wskaźnkowej dokonuje przesuneca adresu o welokrotność lczby bajtów, które zajmuje w pamec jedna zmenna typu typ. Możemy to sprawdzć np. w nastepuj acy sposób. 1 nt t = new nt [3]; // u n a s n t t o 4 b a j t y 2 cout << t; // np. 0 x 9 b64e300 t o samo, co c o u t << &t [ 0 ] ; 3 cout << t +1; // np. 0 x 9 b64e304 t o samo, co c o u t << &t [ 1 ] ; 4 cout << t +2; // np. 0 x 9 b64e308 t o samo, co c o u t << &t [ 2 ] ; 5 t [0] = 1; 6 t [1] = 2; 7 t [2] = 3; 8 delete [] t; Kolejne elementy tablcy w pamec zawsze nastepuj a po sobe, co lustruje ponższy rysunek. t t[2] 0x9b64e308 t[1] 0x9b64e304 t[0] 0x9b64e300 (nt) 3 (nt) 2 (nt) 1 Jesteśmy już gotow, by napsać fragment programu do sumowana zarobków naszego koleg. Tym razem ne bedzemy zak ladać, że lczba mesecy jest określona z góry. Tutaj bedzemy ja wprowadzać z klawatury. 1 nt n; 2 cout << " Ile mesęcy? "; 3 cn >> n; 4 assert (n >0) ; // wymaga <c a s s e r t > 5 6 double zarobk = new double [ n]; 7 8 for ( nt =0; <n; ++) { 9 cout << " Podaj zarobk w mesącu nr " << << ": "; 10 cn >> zarobk []; // t o samo, co c n >> ( z a r o b k + ) ; 11 } // t u t a j możemy np. wygenerować l a d n e z e s t a w e n e

11 4.1. DYNAMICZNA ALOKACJA PAMIECI 9 14 // wprowadzonych danych t p. 15 for ( nt =0; <n; ++) 16 cout << << ": " << zarobk [ ] << endl ; // p o l c z m y sum e : 19 double suma = 0. 0; 20 for ( nt =0; <n; ++) 21 suma += zarobk []; cout << " Zarobłem w 2012 r. " << suma << " zł."; delete [] zarobk ; Cekawostka W jezyku C++ można także deklarować tablce o ustalonym z góry, sta lym rozmarze (na stose). Ich zaleta jest możlwość ustalena wartośc ch elementów podczas deklaracj, co może poprawać czytelność programów demonstrujacych mplementacje pewnych szczególnych algorytmów. 1 nt t [3] = {1, 2, 3}; // d e k l a r a c j a t a b l c y n c j o w a n e w a r t o ś c 2 // t w c a ż j e s t w s k a ź n k e m na p e r w s z y e l e m e n t : 3 // używamy go tak, j a k w p r z y p a d k u t a b l c y d y n a m c z n e a l o k o w a n e j 4 //... 5 // n e s t o s u j e m y d e l e t e! ( bo n e b y l o new ) Jednak w przypadku dużej klasy problemów ch mplementacja z użycem tablc o zadanym rozmarze wydaje s e ma lo naturalna s labo skalowalna wzgl edem rozmaru problemu Przekazywane tablc funkcjom Podsumujmy: tablca to cag obektów tego samego typu po lożonych w pamec kolejno, jeden po drugm. Dostep do elementów tablcy mamy zapewnony przez wskaźnk na perwszy z tych obektów. Obekty typu wskaźnkowego możemy przekazywać funkcjom tak, jak zwyk le zmenne skalarne. Wobec tego, aby można by lo napsać funkcje, która w jakś sposób przetwarza dane zawarte w tablcy, należy dodatkowo przekazać jej nformacje o tym, le jest elementów w tablcy, czyl jej rozmar. Cekawostka W rozdzale 5 poznamy nny sposób nformowana funkcj, gdze znajduje se ostatn element tablcy. Za lożymy wtedy, że ostatnm elementem cagu jest pewna specjalna wyróżnona wartość, (tzw. wartownk) która ne pojawa se jako zwyk ly element gdze ndzej. Wówczas wystarczy nam tylko nformacja na temat po lożena perwszego elementu tablcy. Jej konec bowem bedzemy mogl sam sobe znaleźć.

12 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC 10 Przyk lad. Funkcja wyznaczajaca sume wartośc elementów z podanej tablcy. 1 double suma ( double const t, nt n) 2 { // d o s t e p do elementów t t y l k o do o d c z y t u 3 assert (n > 0); 4 double s = 0. 0; 5 for ( nt =0; <n; ++) 6 s += t[]; 7 return s; 8 } 9 10 nt man ( vod ) 11 { 12 nt le = 10; 13 double punkty = new double [ le ]; 14 for ( nt =0; <le ; ++) 15 cn >> punkty []; 16 cout << suma ( punkty, le ); // p r z e k a z a n e t a b l c y do f u n k c j 17 delete [] punkty ; 18 return 0; 19 } Na margnese, zauważmy, że funkcja suma() ne ma żadnych efektów ubocznych. Ne wypsuje nc na ekran an o nc ne pyta se użytkownka. Wyznacza tylko wartość sumy elementów zawartych w tablcy czyl tylko to, czego użytkownk (funkcja man()) może se po nej spodzewać. Ponadto zaps double const zapewna, że elementów danej tablcy ne można zmenać. Jest to tzw. wskaźnk na wartośc sta le Proste algorytmy sortowana tablc Zadane Wyobraź sobe, le czasu zaje loby C znalezene has la w s lownku (chodz oczywśce o s lownk ksażkowy), gdyby redaktorzy przyjelby losowa kolejność wyrazów. Przeanalzuj z jakego algorytmu korzystasz wyszukuj ac to, co Ce nteresuje. Rozważymy teraz problem sortowana tablc jednowymarowych, który jest stotny w welu zastosowanach, zarówno teoretycznych jak praktycznych. Dzek odpowednemu uporzadkowanu elementów nektóre algorytmy (np. wyszukwana) moga dza lać szybcej, moga być prostsze w napsanu czy też można latwej formalne udowodnć ch poprawność. Co wecej, stneje wcale nema lo zagadneń, które wprost wymagaja pewnego uporzad- kowana danych które bez takej operacj wcale ne maja sensu. Zadane Przyk ladowo, rozważmy w jak sposób wyszukujemy nteresujace nas strony nternetowe. Wekszość wyszukwarek dza la w nastepuj acy sposób.

13 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Znajdź wszystke strony w baze danych, które zaweraja podane przez użytkownka s lowa kluczowe (np. kaszel, goraczka objawy ). 2. Oceń każda znalezona strone pod wzgledem pewnej mary adekwatnośc/popularnośc- /jakośc. 3. Posortuj wynk zgodne z ocenam (od najlepszej do najgorszej ) pokaż ch lste użytkownkow. Warto przypomneć, że o rynkowym sukcese wyszukwark Google zadecydowa lo to, że w przecweństwe do ówczesnych konkurencyjnych serwsów zwraca la ona wynk w dość pożytecznej dla w ekszośc osób kolejnośc. Problem sortowana, w swej najprostszej postac, można sformalzować w nastepuj acy sposób. Dana jest tablca t rozmaru n zawerajaca elementy, które można porównywać za pomoca operatora relacyjnego <=. Należy zmenć kolejność (tj. dokonać permutacj, uporzadkowana) elementów t tak, by zachodz ly warunk: t[0] <= t[1], t[1] <= t[2],..., t[n 2] <= t[n 1]. Cekawostka Zauważmy, że rozwazane takego problemu wcale ne mus być jednoznaczne. Dla tablc zawerajacych elementy t[] t[j] take, że dla j zachodz t[] <= t[j] oraz t[j] <= t[], tj. t[] == t[j], może stneje wecej nż jedna permutacja spe lnajaca powyższe warunk. Algorytm sortowana nazwemy stablnym, jeśl wzgledna kolejność elementów o tej samej wartośc zostaje zachowana po posortowanu. W lasność ta jest przydatna w przypadku sortowana obektów z lożonych za pomoca wecej nż jednego kryterum na raz. W nnejszym paragrafe omówmy trzy algorytmy sortowana: 1. sortowane przez wybór, 2. sortowane przez wstawane, 3. sortowane babelkowe. Algorytmy te cechuja se tym, że w pesymstycznym ( najgorszym ) przypadku lczba operacj porównań elementów tablcy jest proporcjonalna do n 2 (zob. dalej, podrozdz ). Bardzej wydajne, co za tym dze, bardzej z lożone algorytmy sortowana bed a omówone w semestrze III (np. sortowane szybke, przez l aczene, przez kopcowane). Nektóre z nch wymagaja co najwyżej kn log n porównań dla pewnego k. Dzek temu dla tablc o dużym rozmarze dza laj a naprawde szybko.

14 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Sortowane przez wybór W algorytme sortowana przez wybór (ang. selecton sort) dokonujemy za każdym razem wyboru elementu najmnejszego spośród do tej pory neposortowanych, pók ca la tablca ne zostane uporzadkowana. Idee te przedstawa nastepuj acy pseudokod: dla =0,1,...,n 2 { // t [ 0 ],..., t [ 1] s a j u ż u p o r za d k o w a n e wzgledem r e l a c j <= // ( nadto, s a j u ż na s w o c h o s t a t e c z n y c h m e j s c a c h ) j = ndeks najmnejszego elementu spośród t[],..., t[n 1]; zameń elementy t[] t[j]; } Jako przyk lad rozważmy, krok po kroku, przebeg sortowana cagu lczb naturalnych (4,1,3,5,2). Kolejne teracje dza lana tego algorytmu lustruja rys W kroku I (rys. 4.4) mamy ==0. Dokonujac wyboru elementu najmnejszego spośród t[0],..., t[4] otrzymujemy j==1. Zamenamy wec elementy t[0] t[1] mejscam. 2. W kroku II (rys. 4.5) mamy ==1. Wybór najmnejszego elementu wśród t[1],..., t[4] daje j==4 Zamenamy mejscam zatem t[1] t[4]. 3. Dalej (rys. 4.6), ==2. Elementem najmnejszym spośród t[2],..., t[4] jest t[j] dla j==2 Zamenamy mejscam zatem nezbyt sensowne t[2] t[2]. Komputer, na szcześce, zrob to bez grymasu. 4. W ostatnm kroku (rys. 4.7) ==3 j==4, dzek czemu możemy uzyskać ostateczne rozwazane (rys. 4.8).

15 j Rys Sortowane przez wybór przyk lad teracja I j Rys Sortowane przez wybór przyk lad teracja II j Rys Sortowane przez wybór przyk lad teracja III 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC 13

16 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC j Rys Sortowane przez wybór przyk lad teracja IV Rys Sortowane przez wybór przyk lad rozw azane

17 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Sortowane przez wstawane Algorytm sortowana przez wstawane (ang. nserton sort) jest metoda czesto stosowana w praktyce do porzadkowana ma lej lczby elementów (do ok ) ze wzgledu na swa prostote szybkość dza lana. W nnejszej metodze w -tym kroku elementy t[0],..., t[ 1] sa już wstepne uporzadkowane wzgledem relacj <=. Pomedzy ne wstawamy t[] tak, by ne zaburzyć porzadku. Formalne rzecz ujmujac, dea ta może być wyrażona za pomoca pseudokodu: dla =1,2,...,n 1 { // t [ 0 ],..., t [ 1] s a w s t e p n e u p o r za d k o w a n e wzgledem <= // ( a l e n e k o n e c z n e j e s t t o c h o s t a t e c z n e m e j s c e ) j = ndeks takego elementu spośród t [0],..., t[], że t[u] <= t[] dla każdego u < j oraz t[] < t[v] dla każdego v j; jeśl (j < ) wstaw t[] przed t[j]; } gdze przez operacje wstaw t[] przed t[j], dla 0 j < rozumemy cag dza lań, majacy na celu przestawene kolejnośc elementów tablcy: t[0]... t[j 1] t[j]... t[ 1] t[] t[+1]... t[n 1] tak, by uzyskać: t[0]... t[j 1] t[] t[j]... t[ 1] t[+1]... t[n 1] Powyższy pseudokod może być wyrażony w nastepuj acej równoważnej forme: dla =1,2,...,n 1 { // t [ 0 ],..., t [ 1] s a u p o r za d k o w a n e wzgledem <= // ( a l e n e k o n e c z n e j e s t t o c h o s t a t e c z n e m e j s c e ) znajdź najwększe j ze zboru {0,..., } take, że j == 0 lub t[j 1] <= t[]; jeśl (j < ) wstaw t[] przed t[j]; } Jako przyk lad rozpatrzmy znów cag lczb naturalnych (4,1,3,5,2). Przebeg kolejnych wykonywanych kroków przedstawaja rys Cekawostka Można pokazać, że tak sformu lowany algorytm jest stablny. Prześledź jego dza lane np. dla cagu (2, 4, 2, 5, 1, 3) (dla czytelnośc te same elementy wyróżnlśmy, by wskazać ch perwotny porzadek). Porównaj uzyskany wynk z tym, który można uzyskać za pomoca algorytmu sortowana przez wybór.

18 j Rys Sortowane przez wstawane przyk lad teracja I j Rys Sortowane przez wstawane przyk lad teracja II j Rys Sortowane przez wstawane przyk lad teracja III 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC 16

19 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC j Rys Sortowane przez wstawane przyk lad teracja IV

20 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Sortowane babelkowe Sortowane babelkowe (ang. bubble sort) jest nteresujacym przyk ladem algorytmu pojawajacego se w wekszośc podrecznków akademckch dotyczacych podstawowych sposobów sortowana tablc, którego prawe wcale ne stosuje se w praktyce. Jego wydajność jest bowem bardzo s laba w porównanu do dwóch metod opsanych powyżej. Z drugej strony, posada on sympatyczna hydrologczna (nautyczna?) nterpretacje, która urzeka welu wyk ladowców, w tym skromnego autora nnejszej ksażeczk. Tak umotywowan, przystapmy wec do zapoznana se z nm. W tym algorytme porównywane sa tylko elementy ze soba bezpośredno sasaduj ace. Jeśl okaże se, że ne zachowuja one odpowednej kolejnośc wzgledem relacj <=, element ceższy wypychany jest w góre, nczym pecherzyk powetrza (tytu lowy b abelek) pod powerzchna wody. A oto pseudokod: dla =n 1,...,1 { dla j =0,..., 1 { } // p o r ó w n u j e l e m e n t y p a r a m jeśl (t[j] > t[j +1]) zameń t[j] t[j +1]; // t z n. w y p c h n j c e ż s z e g o b a b e l k a w g ó r e } // t u t a j e l e m e n t y t [ ],..., t [ n 1] s a j u ż na s w o c h m e j s c a c h Dla przyk ladu rozpatrzmy ponowne tablce (4,1,3,5,2). Przebeg kolejnych wykonywanych kroków przedstawaja rys Cekawostka Ten algorytm równeż jest stablny.

21 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC ? j? j? j? j Rys Sortowane babelkowe przyk lad krok I

22 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC ? j? j ? j Rys Sortowane babelkowe przyk lad krok II

23 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC ? j? j Rys Sortowane babelkowe przyk lad krok III

24 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC ? j Rys Sortowane babelkowe przyk lad krok IV Rys Sortowane babelkowe przyk lad rozwazane

25 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Efektywność oblczenowa Rozważajac algorytmy sortowana w sposób oczywsty obserwujemy wspomnane w perwszym rozdzale zjawsko jeden problem wele algorytmów. Rzecz jasna, trzy podane wyżej algorytmy (co zreszta zosta lo zapowedzane) ne wyczerpuja wszystkch możlwośc rozwazana zagadnena sortowana tablc jednowymarowych. Nasuwa se wec pytane: skoro każda z metod znajduje rozwazane danego problemu w poprawny sposób, jake przes lank pownny nam kerować przy wyborze algorytmu w zastosowanach praktycznych? Lenuszk z pewnośc a wybra lyby algorytm najprostszy w mplementacj. Domyślamy se jednak, że ne jest to zbyt roztropne kryterum. W tzw. analze algorytmów wyróżna s e dwe najważnejsze mary efektywnośc oblczenowej: 1. z lożoność czasowa czyl lczbe tzw. operacj znaczacych (zależna od danego problemu; moga to być przestawena, porównana, operacje arytmetyczne tp.) potrzebnych do rozwazana danego zagadnena, 2. z lożoność pamecowa czyl lość dodatkowej pamec potrzebnej do rozwazana problemu. Zauważmy, że w przypadku przedstawonych wyżej algorytmów, oprócz danej tablcy która należy posortować klku zmennych pomocnczych ne jest potrzebna żadna dodatkowa lczba komórek pamec komputera (w przypadku bardzej z lożonych metod omawanych w sem. III bedze jednak naczej, np. koneczne bedze użyce jeszcze jednej tablcy). Skupmy se wec teraz tylko na omówenu z lożonośc czasowej. Przyjrzyjmy se zatem przyk ladowym mplementacjom dwóch algorytmów dla danej tablcy t rozmaru n. Oto kod stosujacy sortowane przez wybór: 1 // S o r t o w a n e p r z e z wybór : 2 for ( nt =0; <n 1; ++) 3 { 4 // z n a j d ź n d e k s najmn. e l. s p o ś r ó d t [ ],..., t [ n 1 ] ; 5 nt j = ; 6 for ( nt k= +1; k<n; ++k) 7 f (t[k] < t[j]) // p o r ó w n a n e elementów 8 j = k; 9 10 // zamana 11 nt p = t[]; 12 t[] = t[j]; 13 t[j] = p; 14 } A oto kod sortujacy tablce babelkowo : 1 // S o r t o w a n e b a b e l k o w e : 2 for ( nt =n 1; >0; ) 3 { 4 for ( nt j =0; j<; ++j) 5 { 6 f (t[j] > t[j +1]) // p o r o w n a n e p a r a m 7 { 8 nt p = t[j]; // zamana 9 t[j] = t[j +1];

26 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC t[j +1] = p; 11 } 12 } 13 } Po perwsze, musmy podkreślć, ż formalne rzecz borac z lożoność czasowa wyznacza se ne dla abstrakcyjnego algorytmu, tylko dla jego konkretnej mplementacj. Implementacja zależna jest, rzecz jasna, od stosowanego jezyka programowana zdolnośc programsty. Ne pownno to nas dzwć, poneważ np. za wysokm pozom abstrakcj stosowanym czesto w pseudokodach może kryć se naprawde wele skomplkowanych nstrukcj jezyka programowana. Po druge, zauważmy, że z lożoność jest najcześcej zależna od danych wejścowych. W naszym przypadku jest to ne tylko rozmar tablcy, n, ale także jej wstepne uporzad- kowane. Z tego też powodu lczbe operacj znaczacych pownno podawać se w postac funkcj rozmaru zboru danych wejścowych (u nas jest to po prostu n) w różnych sytuacjach, najcześcej co najmnej: 1. w przypadku pesymstycznym, czyl dla danych, dla których mplementacja algorytmu mus wykonać najwecej operacj znaczacych, 2. w przypadku optymstycznym, czyl gdy dane wejścowe mnmalzuja lczbe potrzebnych operacj znaczacych. Cekawostka Celowość przeprowadzena badana przypadków pesymstycznych optymstycznych pozostaje przeważne poza dyskusja. Czasem także bada se tzw. z lożoność czasowa oczekwana (średna), zak ladajac, że dane maja np. tzw. rozk lad jednostajny (w naszym przypadku znaczy loby to, że prawdopodobeństwo pojawena se każdej możlwej permutacj cagu wejścowego jest take samo). Oczywśce watplwośc może tutaj budzć, czy tak dobór rozk ladu jest adekwatny, s lowem czy rzeczywśce modeluje to, co zdarza se w praktyce. Ne zmena to jednak faktu, że jest to zagadnene bardzo cekawe warte rozważana. Wymaga ono jednak dość rozbudowanego aparatu matematycznego, którym nestety jeszcze ne dysponujemy. Netrudno zauważyć, że w przypadku przedstawonych wyżej mplementacj algorytmów przypadkem optymstycznym jest tablca już posortowana (np. (1, 2, 3, 4, 5)), a przypadkem pesymstycznym tablca posortowana odwrotne (np. (5, 4, 3, 2, 1)). Pozostaje nam już tylko wyróżnć, co możemy rozumeć w danych przyk ladach za operacje znaczace oraz dokonać stosowne oblczena. Wydaje se, że najrozsadnej bedze rozważyć lczbe potrzebnych przestaweń elementów oraz lczbe ch porównań rzecz jasna, w zależnośc od n. 1. Analza lczby porównań elementów. 1. Sortowane przez wybór. Zauważamy, że lczba porównań ne jest zależna od wstepnego uporzadkowana elementów tablcy. Jest ona zawsze równa (n 1) + (n 2) = n(n 1)/2 = n 2 /2 n/2.

27 4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC Sortowane babelkowe. Jak wyżej, lczba porównań ne jest zależna od wstepnego uporzadkowana elementów tablcy. Uzyskujemy wartość (n 1) + (n 2) = n 2 /2 n/2. Obydwe mplementacje algorytmów ne różna se lczba potrzebnych porównań. Sa zatem tak samo dobre (badź tak samo z le) pod wzgledem tego kryterum. Zauważmy, że lczba ta jest proporcjonalna do n 2 (naczej jest rzedu n 2 ). 2. Analza lczby przestaweń elementów. 1. Sortowane przez wybór. (a) Przypadek pesymstyczny. Lczba potrzebnych przestaweń wynos n 1. (b) Przypadek optymstyczny. Lczba potrzebnych przestaweń wynos Sortowane babelkowe. (a) Przypadek pesymstyczny. Lczba potrzebnych przestaweń wynos n(n 1)/2. (b) Przypadek optymstyczny. Lczba potrzebnych przestaweń wynos 0. Okazuje se, że w najgorszym przypadku lczba potrzebnych przestaweń elementów dla naszej mplementacj algorytmu sortowana przez wybór jest proporcjonalna do n, a dla sortowana babelkowego jest aż rzedu n 2! Tablca 4.1 zestawa lczbe potrzebnych przestaweń elementów powyższych algorytmów uzyskane na komputerze autora nnejszego opracowana czasy dza lana (w sekundach, tablce o elementach typu nt). Zauważamy, że użyce powyższych algorytmów już dla n > ne jest dobrym pomys lem (na szcześce, stneja lepsze, naprawde szybke sposoby rozwazana problemu sortowana). Ponadto, sama lczba przestaweń ne t lumaczy czasu wykonana oblczeń (dlatego koneczne by lo także zbadane lczby potrzebnych porównań). Tab Porównane lczby potrzebnych przestaweń elementów czasów dza lana dwóch algorytmów sortowana w przypadku pesymstycznym Lczba przestaweń Czas [s] n Selecton Bubble Selecton Bubble

28 4.3. ĆWICZENIA Ćwczena Zadane 4.1. Napsz funkcje, która za pomoca tylko jednej petl for znajduje wypsuje na ekran element najmnejszy element najwekszy danej tablcy lczb ca lkowtych. Zadane 4.2. Napsz funkcje, która za pomoca tylko jednej petl for wyznaczy zwróc trzec najwekszy element z danej 3 n-elementowej tablcy lczb ca lkowtych, np. dla cagu (3.0, 5.0, 2.0, 4.0, 1.0, 6.0) bedze to 4.0. Zadane 4.3. Nech dany bedze n-elementowy cag lczb rzeczywstych x = (x 1, x 2,..., x n ). Średna ważona (ang. weghted mean) wzgledem neujemnego wektora wag w = (w 1, w 2,..., w n ) takego, że n =1 w = 1, nazywamy wartość WM w (x) = n =1 x w. Napsz funkcje, który wyznaczy wartość WM danego cagu wzgledem danego neujemnego wektora, który przed oblczenam należy unormować tak, by jego elementy sumowa ly se do 1. Zadane 4.4. Dana jest tablca t sk ladajaca se z lczb ca lkowtych od 0 do 19. Napsz funkcje, która wyznaczy jej domnante (mode), czyl najcześcej pojawajac a se wartość. Wskazówka. Skorzystaj z pomocnczej, 20-elementowej tablcy, za pomoca której zlczysz, le razy w tablcy t wystepuje każda możlwa wartość. Tablca pownna być zancjowana zeram. Nastepne należy znaleźć jej maksmum. Zadane 4.5. Uogólnj funkcj e z zad. 4.4 tak, by dza la la ne tylko dla tablc o elementach ze zboru {0, 1,..., 19}, ale dla dowolnego {a, a + 1,..., b}. Zadane 4.6. Sortowane kube lkowe. Dana jest n-elementowa tablca t wype lnona lczbam naturalnym ze zboru {1, 2,..., k} dla pewnego k. Napsz funkcje, która za pomoca tzw. sortowana kube lkowego uporzadkuje w kolejnośc nemalejacej elementy z t. W algorytme sortowana kube lkowego korzystamy z k-elementowej tablcy pomocnczej, która s luży do zlczana lczby wystapeń każdej z k wartośc elementów z t. Na poczatku tablca pomocncza jest wype lnona zeram. Należy rozpatrywać kolejno każdy element tablcy t, za każdym razem zwekszaj ac o 1 wartość odpowednej komórk tablcy pomocnczej. Dla przyk ladu, za lóżmy n = 6, k = 4 oraz że dana jest tablca t o elementach (4, 3, 2, 4, 4, 2). Tablca pomocncza pownna pos lużyć do uzyskana nformacj, że w t jest 0 elementów równych 1, 2 elementy równe 2, 1 element równy 3 oraz 3 elementy równe 4. Na podstawe tej wedzy można zastapć elementy tablcy t kolejno wartoścam (2, 2, 3, 4, 4, 4), tym samym otrzymujac w wynku posortowana tablce. Zadane 4.7. Dane sa dwe lczby ca lkowte w systeme dzesetnym: n-cyfrowa lczba reprezentowana za pomoca tablcy a oraz m-cyfrowa reprezentowana za pomoca tablcy b, gdze n > m. Każda cyfra zajmuje osobna komórke tablcy. Cyfry zapsane sa w kolejnośc od najm lodszej do najstarszej, tzn. element o ndekse 0 oznacza jednośc, 1 dzesatk td., przy czym najstarsza cyfra jest różna od 0. Napsz funkcje, która utworzy nowa, dynamczne alokowana tablce reprezentujac a wynk odejmowana lczb a b. Zadane 4.8. Dane sa dwe lczby ca lkowte w systeme dzesetnym reprezentowane za pomoca dwóch tablc a b o rozmarze n > 1. Każda cyfra zajmuje osobna komórke tablcy. Cyfry zapsane sa w kolejnośc od najm lodszej do najstarszej, tzn. element o ndekse 0 oznacza jednośc, 1 dzesatk td., przy czym najstarsza cyfra jest różna od 0. Napsz funkcje, która zwróc tablce reprezentujac a wynk dodawana lczb a b. Zadane 4.9. Utwórz strukture o nazwe DzenMesac zawerajac a dwa pola typu ca lkowtego: dzen mesac. Nastepne stwórz funkcje poprawnedaty(), która dla danej tablcy o elementach typu DzenMesac zwróc wartość logczna true wtedy tylko wtedy, gdy każdy jej element określa prawd low a date w roku neprzestepnym. Zadane Zmodyfkuj funkcje z zad. 4.9 tak, by przyjmowa la jako argument także rok. Sprawdzane daty tym razem ma uwzglednać, czy dany rok jest przestepny.

29 4.3. ĆWICZENIA 27 Zadane Dany jest weloman rzeczywsty stopna n > 0 którego wspó lczynnk przechowywane sa w (n + 1-elementowej tablcy w tak, że zachodz w(x) = w[0]x 0 + w[1]x w[n]x n, w[n] 0. Napsz funkcje, która zwróc wartość w(x) dla danego x. Zadane Zmodyfkuj funkcj e z zad tak, by korzysta la z bardzej efektywnego oblczenowo wzoru na wartość w(x), zwanego schematem Hornera: w(x) = ( (((w[n]x + w[n 1]) x + w[n 2]) x + w[n 3]) ) x + w[0]. Zadane Nech dane bed a welomany w(x) v(x) stopna, odpowedno, n m. Napsz funkcje, która wyznaczy wartośc wspó lczynnków welomanu u(x) stopna n + m, bed acego loczynem welomanów w v. Zadane Dane sa dwe uporzadkowane nemalejaco tablce lczb ca lkowtych x y rozmarów, odpowedno, n m. Napsz funkcje, który zwróc uporzadkowan a nemalejaco tablce rozmaru n + m powsta l a ze scalena tablc x y. Algorytm pownen meć lnowa (rzedu n + m) pesymstyczna z lożoność czasowa. Np. dla x = (1, 4, 5) y = (0, 2, 3) pownnśmy otrzymać (0, 1, 2, 3, 4, 5). Zadane Dana jest n-elementowa, już posortowana tablca lczb ca lkowtych oraz lczba ca lkowta x. Napsz funkcje, która za pomoca wyszukwana bnarnego (po lówkowego) sprawdz, czy wartość x jest elementem tablcy jeśl tak, to poda pod którym ndeksem tablcy se znajduje badź zwróc -1 w przecwnym przypadku. Zadane Zamplementuj w postac funkcj algorytm sortowana babelkowego danej tablcy o n elementach typu nt, w którym wykorzystywany jest tzw. wartownk. Wartownk to dodatkowa zmenna w, która zapametuje ndeks tablcy, pod którym wystap lo ostatne przestawene elementów w petl wewnetrznej. Dzek nemu wystarczy, że w kolejnej teracj petla wewnetrzna zatrzyma se na ndekse w. W przypadku pomyślnego u lożena danych w tablcy wejścowej może to bardzo przyspeszyć oblczena. Porównaj swoja wersje algorytmu z podana w skrypce pod wzgledem lczby potrzebnych operacj porównań oraz przestaweń elementów w zależnośc od n dla tablcy już posortowanej oraz dla tablcy posortowanej w kolejnośc odwrotnej. Zadane Dana jest tablca o n > 1 elementach typu double. Napsz funkcje wykorzystujac a tylko jedna petl e for, która oblczy warancje jej elementów. Warancja cagu x = (x 1,..., x n ) dana jest wzorem s 2 (x) = 1 n=1 n 1 (x x) 2, gdze x jest średna arytmetyczna cagu x. Zadane [PN PS] Dana jest tablca o elementach typu double. Napsz funkcje, która sprawdza, czy każde 3 lczby z tablcy moga być d lugoścam boków jakchś trójkatów. Zadane [MD] Tak zwany cag EKG (a 1, a 2,... ) o elementach naturalnych jest zdefnowany nastepuj aco: a 1 = 1, a 2 = 2 oraz a n+1 jest najmnejsza lczba naturalna ne wystepuj ac a wcześnej w cagu taka, że NWD(a n, a n+1 ) > 1, tzn. majac a netrywalny wspólny dzelnk z a n. Napsz funkcje, która wyznaczy a n dla danego n. Zadane [MD] Dana jest n-elementowa tablca t o elementach ca lkowtych, reprezentujaca permutacje zboru {0, 1,..., n 1}. Napsz ( fragment kodu, który wyznaczy ) lczbe 2, 1, 5, 4, 3, 0 cykl w tej permutacj. Dla przyk ladu, tablca reprezentuje t[0] t[1] t[2] t[3] t[4] t[5] permutacj e o 3 cyklach. Zawera bowem cykl o d lugośc 3 (t[0] = 2 t[2] = 5 t[5] = 0), cykl o d lugośc 2 (t[3] = 4 t[4] = 3) oraz cykl o d lugośc 1 (t[1] = 1). Zadane [MD] Cag Golomba (g 1, g 2,... ) to jedyny nemalejacy cag lczb naturalnych, w którym każda lczba wystepuje dok ladne g razy, przy za lożenu g 1 = 1. Napsz funkcje, która wyznaczy n-ty wyraz tego cagu dla danego n g

30 4.4. WSKAZÓWKI I ODPOWIEDZI DO ĆWICZEŃ Wskazówk odpowedz do ćwczeń Wskazówka do zadana Na przyk lad dla w(x) = x 4 + 4x 2 x + 2 oraz v(x) = x 4 + x zachodz u(x) = x 8 + x 7 + 4x 6 + 3x x 4 + 2x x 2 10x Wskazówka do zadana Należy wyprowadzć wzory (rekurencyjne) na średna arytmetyczna warancje k poczatkowych elementów cagu, zależne od elementu x k oraz średnej arytmetycznej warancj elementów (x 1,..., x k 1 ). Wskazówka do zadana Jeśl mamy a b c, to warunkem konecznym dostatecznym tego, by da lo se skonstruować trójkat o bokach d lugośc a, b, c, jest c < a + b. Uwaga. Ne trzeba sprawdzać wszystkch możlwych trójek! Wskazówka do zadana Skorzystaj z pomocnczej n-elementowej tablcy lczb ca lkowtych.

Algorytmy. i podstawy programowania. eci. Proste algorytmy sortowania tablic. 4. Wskaźniki i dynamiczna alokacja pami

Algorytmy. i podstawy programowania. eci. Proste algorytmy sortowania tablic. 4. Wskaźniki i dynamiczna alokacja pami MAREK GAGOLEWSKI INSTYTUT BADAŃ SYSTEMOWYCH PAN Algorytmy podstawy programowana 4. Wskaźnk dynamczna alokaca pam ec. Proste algorytmy sortowana tablc Matera ly dydaktyczne dla studentów matematyk na Wydzale

Bardziej szczegółowo

Zapis informacji, systemy pozycyjne 1. Literatura Jerzy Grębosz, Symfonia C++ standard. Harvey M. Deitl, Paul J. Deitl, Arkana C++. Programowanie.

Zapis informacji, systemy pozycyjne 1. Literatura Jerzy Grębosz, Symfonia C++ standard. Harvey M. Deitl, Paul J. Deitl, Arkana C++. Programowanie. Zaps nformacj, systemy pozycyjne 1 Lteratura Jerzy Grębosz, Symfona C++ standard. Harvey M. Detl, Paul J. Detl, Arkana C++. Programowane. Zaps nformacj w komputerach Wszystke elementy danych przetwarzane

Bardziej szczegółowo

Twierdzenie Bezouta i liczby zespolone Javier de Lucas. Rozwi azanie 2. Z twierdzenia dzielenia wielomianów, mamy, że

Twierdzenie Bezouta i liczby zespolone Javier de Lucas. Rozwi azanie 2. Z twierdzenia dzielenia wielomianów, mamy, że Twerdzene Bezouta lczby zespolone Javer de Lucas Ćwczene 1 Ustal dla których a, b R można podzelć f 1 X) = X 4 3X 2 + ax b przez f 2 X) = X 2 3X+2 Oblcz a b Z 5 jeżel zak ladamy, że f 1 f 2 s a welomanam

Bardziej szczegółowo

Laboratorium ochrony danych

Laboratorium ochrony danych Laboratorum ochrony danych Ćwczene nr Temat ćwczena: Cała skończone rozszerzone Cel dydaktyczny: Opanowane programowej metody konstruowana cał skończonych rozszerzonych GF(pm), poznane ch własnośc oraz

Bardziej szczegółowo

STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH

STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH STATYSTYKA MATEMATYCZNA WYKŁAD 5 WERYFIKACJA HIPOTEZ NIEPARAMETRYCZNYCH 1 Test zgodnośc χ 2 Hpoteza zerowa H 0 ( Cecha X populacj ma rozkład o dystrybuance F). Hpoteza alternatywna H1( Cecha X populacj

Bardziej szczegółowo

Analiza danych OGÓLNY SCHEMAT. http://zajecia.jakubw.pl/ Dane treningowe (znana decyzja) Klasyfikator. Dane testowe (znana decyzja)

Analiza danych OGÓLNY SCHEMAT. http://zajecia.jakubw.pl/ Dane treningowe (znana decyzja) Klasyfikator. Dane testowe (znana decyzja) Analza danych Dane trenngowe testowe. Algorytm k najblższych sąsadów. Jakub Wróblewsk jakubw@pjwstk.edu.pl http://zajeca.jakubw.pl/ OGÓLNY SCHEMAT Mamy dany zbór danych podzelony na klasy decyzyjne, oraz

Bardziej szczegółowo

Zaawansowane metody numeryczne

Zaawansowane metody numeryczne Wykład 9. jej modyfkacje. Oznaczena Będzemy rozpatrywać zagadnene rozwązana następującego układu n równań lnowych z n newadomym x 1... x n : a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x

Bardziej szczegółowo

I. Elementy analizy matematycznej

I. Elementy analizy matematycznej WSTAWKA MATEMATYCZNA I. Elementy analzy matematycznej Pochodna funkcj f(x) Pochodna funkcj podaje nam prędkość zman funkcj: df f (x + x) f (x) f '(x) = = lm x 0 (1) dx x Pochodna funkcj podaje nam zarazem

Bardziej szczegółowo

Urządzenia wejścia-wyjścia

Urządzenia wejścia-wyjścia Urządzena wejśca-wyjśca Klasyfkacja urządzeń wejśca-wyjśca. Struktura mechanzmu wejśca-wyjśca (sprzętu oprogramowana). Interakcja jednostk centralnej z urządzenam wejśca-wyjśca: odpytywane, sterowane przerwanam,

Bardziej szczegółowo

Zestaw zadań 4: Przestrzenie wektorowe i podprzestrzenie. Liniowa niezależność. Sumy i sumy proste podprzestrzeni.

Zestaw zadań 4: Przestrzenie wektorowe i podprzestrzenie. Liniowa niezależność. Sumy i sumy proste podprzestrzeni. Zestaw zadań : Przestrzene wektorowe podprzestrzene. Lnowa nezależność. Sumy sumy proste podprzestrzen. () Wykazać, że V = C ze zwykłym dodawanem jako dodawanem wektorów operacją mnożena przez skalar :

Bardziej szczegółowo

Paradygmaty programowania. Paradygmaty programowania

Paradygmaty programowania. Paradygmaty programowania Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................

Bardziej szczegółowo

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 1. Układy równań liniowych Zaawansowane metody numeryczne Komputerowa analza zagadneń różnczkowych 1. Układy równań lnowych P. F. Góra http://th-www.f.uj.edu.pl/zfs/gora/ semestr letn 2006/07 Podstawowe fakty Równane Ax = b, x,

Bardziej szczegółowo

Weryfikacja hipotez dla wielu populacji

Weryfikacja hipotez dla wielu populacji Weryfkacja hpotez dla welu populacj Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Intelgencj Metod Matematycznych Wydzał Informatyk Poltechnk Szczecńskej 5. Parametryczne testy stotnośc w

Bardziej szczegółowo

Programowanie Równoległe i Rozproszone

Programowanie Równoległe i Rozproszone Programowane Równoległe Rozproszone Wykład Programowane Równoległe Rozproszone Lucjan Stapp Wydzał Matematyk Nauk Informacyjnych Poltechnka Warszawska (l.stapp@mn.pw.edu.pl) /38 PRR Wykład Chcemy rozwązać

Bardziej szczegółowo

D Archiwum Prac Dyplomowych - Instrukcja dla studentów

D Archiwum Prac Dyplomowych - Instrukcja dla studentów Kraków 01.10.2015 D Archwum Prac Dyplomowych - Instrukcja dla studentów Procedura Archwzacj Prac Dyplomowych jest realzowana zgodne z zarządzenem nr 71/2015 Rektora Unwersytetu Rolnczego m. H. Kołłątaja

Bardziej szczegółowo

Problem plecakowy (KNAPSACK PROBLEM).

Problem plecakowy (KNAPSACK PROBLEM). Problem plecakowy (KNAPSACK PROBLEM). Zagadnene optymalzac zwane problemem plecakowym swą nazwę wzęło z analog do sytuac praktyczne podobne do problemu pakowana plecaka. Chodz o to, by zapakować maksymalne

Bardziej szczegółowo

MATEMATYKA POZIOM ROZSZERZONY Kryteria oceniania odpowiedzi. Arkusz A II. Strona 1 z 5

MATEMATYKA POZIOM ROZSZERZONY Kryteria oceniania odpowiedzi. Arkusz A II. Strona 1 z 5 MATEMATYKA POZIOM ROZSZERZONY Krytera ocenana odpowedz Arkusz A II Strona 1 z 5 Odpowedz Pytane 1 2 3 4 5 6 7 8 9 Odpowedź D C C A B 153 135 232 333 Zad. 10. (0-3) Dana jest funkcja postac. Korzystając

Bardziej szczegółowo

BADANIA OPERACYJNE. Podejmowanie decyzji w warunkach niepewności. dr Adam Sojda

BADANIA OPERACYJNE. Podejmowanie decyzji w warunkach niepewności. dr Adam Sojda BADANIA OPERACYJNE Podejmowane decyzj w warunkach nepewnośc dr Adam Sojda Teora podejmowana decyzj gry z naturą Wynk dzałana zależy ne tylko od tego, jaką podejmujemy decyzję, ale równeż od tego, jak wystąp

Bardziej szczegółowo

WikiWS For Business Sharks

WikiWS For Business Sharks WkWS For Busness Sharks Ops zadana konkursowego Zadane Opracowane algorytmu automatyczne przetwarzającego zdjęce odręczne narysowanego dagramu na tablcy lub kartce do postac wektorowej zapsanej w formace

Bardziej szczegółowo

Analiza rodzajów skutków i krytyczności uszkodzeń FMECA/FMEA według MIL STD - 1629A

Analiza rodzajów skutków i krytyczności uszkodzeń FMECA/FMEA według MIL STD - 1629A Analza rodzajów skutków krytycznośc uszkodzeń FMECA/FMEA według MIL STD - 629A Celem analzy krytycznośc jest szeregowane potencjalnych rodzajów uszkodzeń zdentyfkowanych zgodne z zasadam FMEA na podstawe

Bardziej szczegółowo

) będą niezależnymi zmiennymi losowymi o tym samym rozkładzie normalnym z następującymi parametrami: nieznaną wartością 1 4

) będą niezależnymi zmiennymi losowymi o tym samym rozkładzie normalnym z następującymi parametrami: nieznaną wartością 1 4 Zadane. Nech ( X, Y ),( X, Y ), K,( X, Y n n ) będą nezależnym zmennym losowym o tym samym rozkładze normalnym z następującym parametram: neznaną wartoścą oczekwaną EX = EY = m, warancją VarX = VarY =

Bardziej szczegółowo

KURS STATYSTYKA. Lekcja 6 Regresja i linie regresji ZADANIE DOMOWE. www.etrapez.pl Strona 1

KURS STATYSTYKA. Lekcja 6 Regresja i linie regresji ZADANIE DOMOWE. www.etrapez.pl Strona 1 KURS STATYSTYKA Lekcja 6 Regresja lne regresj ZADANIE DOMOWE www.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowedź (tylko jedna jest prawdzwa). Pytane 1 Funkcja regresj I rodzaju cechy Y zależnej

Bardziej szczegółowo

5. OPTYMALIZACJA GRAFOWO-SIECIOWA

5. OPTYMALIZACJA GRAFOWO-SIECIOWA . OPTYMALIZACJA GRAFOWO-SIECIOWA Defncja grafu Pod pojęcem grafu G rozumemy następującą dwójkę uporządkowaną (defncja grafu Berge a): (.) G W,U gdze: W zbór werzchołków grafu, U zbór łuków grafu, U W W,

Bardziej szczegółowo

Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE

Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE Inormatyka Podstawy Programowana 06/07 Projekt 6 6. ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH CAŁKOWANIE NUMERYCZNE 6. Równana algebraczne. Poszukujemy rozwązana, czyl chcemy określć perwastk rzeczywste równana:

Bardziej szczegółowo

Klasyfkator lnowy Wstęp Klasyfkator lnowy jest najprostszym możlwym klasyfkatorem. Zakłada on lnową separację lnowy podzał dwóch klas mędzy sobą. Przedstawa to ponższy rysunek: 5 4 3 1 0-1 - -3-4 -5-5

Bardziej szczegółowo

Wyk lad 7 Baza i wymiar przestrzeni liniowej

Wyk lad 7 Baza i wymiar przestrzeni liniowej Wyk lad 7 Baza i wymiar przestrzeni liniowej 1 Baza przestrzeni liniowej Niech V bedzie przestrzenia liniowa. Powiemy, że podzbiór X V jest maksymalnym zbiorem liniowo niezależnym, jeśli X jest zbiorem

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA WYKŁAD 15. ALGORYTMY GENETYCZNE Częstochowa 014 Dr hab. nż. Grzegorz Dudek Wydzał Elektryczny Poltechnka Częstochowska TERMINOLOGIA allele wartośc, waranty genów, chromosom - (naczej

Bardziej szczegółowo

Ćwiczenie 10. Metody eksploracji danych

Ćwiczenie 10. Metody eksploracji danych Ćwczene 10. Metody eksploracj danych Grupowane (Clusterng) 1. Zadane grupowana Grupowane (ang. clusterng) oznacza grupowane rekordów, obserwacj lub przypadków w klasy podobnych obektów. Grupa (ang. cluster)

Bardziej szczegółowo

W praktyce często zdarza się, że wyniki obu prób możemy traktować jako. wyniki pomiarów na tym samym elemencie populacji np.

W praktyce często zdarza się, że wyniki obu prób możemy traktować jako. wyniki pomiarów na tym samym elemencie populacji np. Wykład 7 Uwaga: W praktyce często zdarza sę, że wynk obu prób możemy traktować jako wynk pomarów na tym samym elemence populacj np. wynk x przed wynk y po operacj dla tego samego osobnka. Należy wówczas

Bardziej szczegółowo

Sortowanie szybkie Quick Sort

Sortowanie szybkie Quick Sort Sortowane szybke Quck Sort Algorytm sortowana szybkego opera sę na strateg "dzel zwycęża" (ang. dvde and conquer), którą możemy krótko scharakteryzować w trzech punktach: 1. DZIEL - problem główny zostae

Bardziej szczegółowo

Problemy jednoczesnego testowania wielu hipotez statystycznych i ich zastosowania w analizie mikromacierzy DNA

Problemy jednoczesnego testowania wielu hipotez statystycznych i ich zastosowania w analizie mikromacierzy DNA Problemy jednoczesnego testowana welu hpotez statystycznych ch zastosowana w analze mkromacerzy DNA Konrad Furmańczyk Katedra Zastosowań Matematyk SGGW Plan referatu Testowane w analze mkromacerzy DNA

Bardziej szczegółowo

ANALIZA KORELACJI WYDATKÓW NA KULTURĘ Z BUDŻETU GMIN ORAZ WYKSZTAŁCENIA RADNYCH

ANALIZA KORELACJI WYDATKÓW NA KULTURĘ Z BUDŻETU GMIN ORAZ WYKSZTAŁCENIA RADNYCH Potr Mchalsk Węzeł Centralny OŻK-SB 25.12.2013 rok ANALIZA KORELACJI WYDATKÓW NA KULTURĘ Z BUDŻETU GMIN ORAZ WYKSZTAŁCENIA RADNYCH Celem ponższej analzy jest odpowedź na pytane: czy wykształcene radnych

Bardziej szczegółowo

ALGEBRY HALLA DLA POSETÓW SKOŃCZONEGO TYPU PRINJEKTYWNEGO

ALGEBRY HALLA DLA POSETÓW SKOŃCZONEGO TYPU PRINJEKTYWNEGO ALGEBRY HALLA DLA POSETÓW SKOŃCZONEGO TYPU PRINJEKTYWNEGO NA PODSTAWIE REFERATU JUSTYNY KOSAKOWSKIEJ. Moduły prnjektywne posety skończonego typu prnjektywnego Nech I będze skończonym posetem. Przez max

Bardziej szczegółowo

ORGANIZACJA ZAJĘĆ OPTYMALIZACJA GLOBALNA WSTĘP PLAN WYKŁADU. Wykładowca dr inż. Agnieszka Bołtuć, pokój 304, e-mail: aboltuc@ii.uwb.edu.

ORGANIZACJA ZAJĘĆ OPTYMALIZACJA GLOBALNA WSTĘP PLAN WYKŁADU. Wykładowca dr inż. Agnieszka Bołtuć, pokój 304, e-mail: aboltuc@ii.uwb.edu. ORGANIZACJA ZAJĘĆ Wykładowca dr nż. Agneszka Bołtuć, pokój 304, e-mal: aboltuc@.uwb.edu.pl Lczba godzn forma zajęć: 15 godzn wykładu oraz 15 godzn laboratorum 15 godzn projektu Konsultacje: ponedzałk 9:30-11:00,

Bardziej szczegółowo

( ) ( ) 2. Zadanie 1. są niezależnymi zmiennymi losowymi o. oraz. rozkładach normalnych, przy czym EX. i σ są nieznane. 1 Niech X

( ) ( ) 2. Zadanie 1. są niezależnymi zmiennymi losowymi o. oraz. rozkładach normalnych, przy czym EX. i σ są nieznane. 1 Niech X Prawdopodobeństwo statystyka.. r. Zadane. Zakładamy, że,,,,, 5 są nezależnym zmennym losowym o rozkładach normalnych, przy czym E = μ Var = σ dla =,,, oraz E = μ Var = 3σ dla =,, 5. Parametry μ, μ σ są

Bardziej szczegółowo

Analiza danych. Analiza danych wielowymiarowych. Regresja liniowa. Dyskryminacja liniowa. PARA ZMIENNYCH LOSOWYCH

Analiza danych. Analiza danych wielowymiarowych. Regresja liniowa. Dyskryminacja liniowa.   PARA ZMIENNYCH LOSOWYCH Analza danych Analza danych welowymarowych. Regresja lnowa. Dyskrymnacja lnowa. Jakub Wróblewsk jakubw@pjwstk.edu.pl http://zajeca.jakubw.pl/ PARA ZMIENNYCH LOSOWYCH Parę zmennych losowych X, Y możemy

Bardziej szczegółowo

Natalia Nehrebecka. Zajęcia 3

Natalia Nehrebecka. Zajęcia 3 St ł Cchock Stansław C h k Natala Nehrebecka Zajęca 3 1. Dobroć dopasowana równana regresj. Współczynnk determnacj R Dk Dekompozycja warancj zmennej zależnej ż Współczynnk determnacj R. Zmenne cągłe a

Bardziej szczegółowo

Procedura normalizacji

Procedura normalizacji Metody Badań w Geograf Społeczno Ekonomcznej Procedura normalzacj Budowane macerzy danych geografcznych mgr Marcn Semczuk Zakład Przedsęborczośc Gospodark Przestrzennej Instytut Geograf Unwersytet Pedagogczny

Bardziej szczegółowo

Proste modele ze złożonym zachowaniem czyli o chaosie

Proste modele ze złożonym zachowaniem czyli o chaosie Proste modele ze złożonym zachowanem czyl o chaose 29 kwetna 2014 Komputer jest narzędzem coraz częścej stosowanym przez naukowców do ukazywana skrzętne ukrywanych przez naturę tajemnc. Symulacja, obok

Bardziej szczegółowo

D Archiwum Prac Dyplomowych - Instrukcja dla opiekunów/promotorów/recenzentów

D Archiwum Prac Dyplomowych - Instrukcja dla opiekunów/promotorów/recenzentów D Archwum Prac Dyplomowych - Instrukcja dla opekunów/promotorów/recenzentów Kraków 13.01.2016 r. Procedura Archwzacj Prac Dyplomowych jest realzowana zgodne z zarządzenem nr 71/2015 Rektora Unwersytetu

Bardziej szczegółowo

PORADNIK KANDYDATA. Wkrótce w nauka w szkole w jaki sposób je. zasadniczych szkole

PORADNIK KANDYDATA. Wkrótce w nauka w szkole w jaki sposób je. zasadniczych szkole Drog Gmnazjalsto, Wkrótce w nauka w szkole w jak sposób je jedno z z w pracodawców. zasadnczych szkole racjonalnego wyboru przestrz W prowadzona przy pomocy systemu elektroncznego. Rekrutacja wspomagana

Bardziej szczegółowo

Diagnostyka układów kombinacyjnych

Diagnostyka układów kombinacyjnych Dagnostyka układów kombnacyjnych 1. Wprowadzene Dagnostyka obejmuje: stwerdzene stanu układu, systemu lub ogólne sec logcznej. Jest to tzw. kontrola stanu wykrywająca czy dzałane sec ne jest zakłócane

Bardziej szczegółowo

SYSTEM ZALICZEŃ ĆWICZEŃ

SYSTEM ZALICZEŃ ĆWICZEŃ AMI, zma 010/011 mgr Krzysztof Rykaczewsk System zalczeń Wydzał Matematyk Informatyk UMK SYSTEM ZALICZEŃ ĆWICZEŃ z Analzy Matematycznej I, 010/011 (na podst. L.G., K.L., J.M., K.R.) Nnejszy dokument dotyczy

Bardziej szczegółowo

STARE A NOWE KRAJE UE KONKURENCYJNOŚĆ POLSKIEGO EKSPORTU

STARE A NOWE KRAJE UE KONKURENCYJNOŚĆ POLSKIEGO EKSPORTU Ewa Szymank Katedra Teor Ekonom Akadema Ekonomczna w Krakowe ul. Rakowcka 27, 31-510 Kraków STARE A NOWE KRAJE UE KONKURENCYJNOŚĆ POLSKIEGO EKSPORTU Abstrakt Artykuł przedstawa wynk badań konkurencyjnośc

Bardziej szczegółowo

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

METODA UNITARYZACJI ZEROWANEJ Porównanie obiektów przy ocenie wielokryterialnej. Ranking obiektów.

METODA UNITARYZACJI ZEROWANEJ Porównanie obiektów przy ocenie wielokryterialnej. Ranking obiektów. Opracowane: Dorota Mszczyńska METODA UNITARYZACJI ZEROWANEJ Porównane obektów przy ocene welokryteralnej. Rankng obektów. Porównane wybranych obektów (warantów decyzyjnych) ze względu na różne cechy (krytera)

Bardziej szczegółowo

ZESTAW ZADAŃ Z INFORMATYKI

ZESTAW ZADAŃ Z INFORMATYKI (Wpsue zdaąc przed rozpoczęcem prac) KOD ZDAJĄCEGO ZESTAW ZADAŃ Z INFORMATYKI CZĘŚĆ II (dla pozomu rozszerzonego) GRUDZIEŃ ROK 004 Czas prac 50 mnut Instrukca dla zdaącego. Proszę sprawdzć, cz zestaw zadań

Bardziej szczegółowo

Natalia Nehrebecka. Wykład 2

Natalia Nehrebecka. Wykład 2 Natala Nehrebecka Wykład . Model lnowy Postad modelu lnowego Zaps macerzowy modelu lnowego. Estymacja modelu Wartośd teoretyczna (dopasowana) Reszty 3. MNK przypadek jednej zmennej . Model lnowy Postad

Bardziej szczegółowo

f(x, y) = arctg x y. f(u) = arctg(u), u(x, y) = x y. x = 1 1 y = y y = 1 1 +

f(x, y) = arctg x y. f(u) = arctg(u), u(x, y) = x y. x = 1 1 y = y y = 1 1 + Różnczkowalność pocodne Ćwczene. Znaleźć pocodne cz astkowe funkcj f(x, y) = arctg x y. Rozw azane: Wdać, że funkcj f można napsać jako f(u(x, y)) gdze f(u) = arctg(u), u(x, y) = x y. Korzystaj ac z reg

Bardziej szczegółowo

KURS STATYSTYKA. Lekcja 1 Statystyka opisowa ZADANIE DOMOWE. www.etrapez.pl Strona 1

KURS STATYSTYKA. Lekcja 1 Statystyka opisowa ZADANIE DOMOWE. www.etrapez.pl Strona 1 KURS STATYSTYKA Lekcja 1 Statystyka opsowa ZADANIE DOMOWE www.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowedź (tylko jedna jest prawdzwa). Pytane 1 W statystyce opsowej mamy pełne nformacje

Bardziej szczegółowo

Kodowanie informacji. Instytut Informatyki UWr Studia wieczorowe. Wykład nr 2: rozszerzone i dynamiczne Huffmana

Kodowanie informacji. Instytut Informatyki UWr Studia wieczorowe. Wykład nr 2: rozszerzone i dynamiczne Huffmana Kodowane nformacj Instytut Informatyk UWr Studa weczorowe Wykład nr 2: rozszerzone dynamczne Huffmana Kod Huffmana - nemłe przypadk... Nech alfabet składa sę z 2 lter: P(a)=1/16 P(b)=15/16 Mamy H(1/16,

Bardziej szczegółowo

Rozkład dwupunktowy. Rozkład dwupunktowy. Rozkład dwupunktowy x i p i 0 1-p 1 p suma 1

Rozkład dwupunktowy. Rozkład dwupunktowy. Rozkład dwupunktowy x i p i 0 1-p 1 p suma 1 Rozkład dwupunktowy Zmenna losowa przyjmuje tylko dwe wartośc: wartość 1 z prawdopodobeństwem p wartość 0 z prawdopodobeństwem 1- p x p 0 1-p 1 p suma 1 Rozkład dwupunktowy Funkcja rozkładu prawdopodobeństwa

Bardziej szczegółowo

Rozdzia l 3. Laboratorium 3. danych zawierajac

Rozdzia l 3. Laboratorium 3. danych zawierajac Rozdzia l 3 Laboratorium 3 3.1. Tablice Tablica jest struktura danych zawierajac a zmienne tego samego typu. CLR środowiska.net Framework wspiera tworzenie tablic jedno oraz wielo wymiarowych. 3.1.1. Tablice

Bardziej szczegółowo

Rozwiązywanie zadań optymalizacji w środowisku programu MATLAB

Rozwiązywanie zadań optymalizacji w środowisku programu MATLAB Rozwązywane zadań optymalzacj w środowsku programu MATLAB Zagadnene optymalzacj polega na znajdowanu najlepszego, względem ustalonego kryterum, rozwązana należącego do zboru rozwązań dopuszczalnych. Standardowe

Bardziej szczegółowo

Statystyka. Zmienne losowe

Statystyka. Zmienne losowe Statystyka Zmenne losowe Zmenna losowa Zmenna losowa jest funkcją, w której każdej wartośc R odpowada pewen podzbór zboru będący zdarzenem losowym. Zmenna losowa powstaje poprzez przyporządkowane każdemu

Bardziej szczegółowo

Zadane 1: Wyznacz średne ruchome 3-okresowe z następujących danych obrazujących zużyce energ elektrycznej [kwh] w pewnym zakładze w mesącach styczeń - lpec 1998 r.: 400; 410; 430; 40; 400; 380; 370. Zadane

Bardziej szczegółowo

5. Pochodna funkcji. lim. x c x c. (x c) = lim. g(c + h) g(c) = lim

5. Pochodna funkcji. lim. x c x c. (x c) = lim. g(c + h) g(c) = lim 5. Pocodna funkcj Defncja 5.1 Nec f: (a, b) R nec c (a, b). Jeśl stneje granca lm x c x c to nazywamy ją pocodną funkcj f w punkce c oznaczamy symbolem f (c) Twerdzene 5.1 Jeśl funkcja f: (a, b) R ma pocodną

Bardziej szczegółowo

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L

Bardziej szczegółowo

Regulamin promocji 14 wiosna

Regulamin promocji 14 wiosna promocja_14_wosna strona 1/5 Regulamn promocj 14 wosna 1. Organzatorem promocj 14 wosna, zwanej dalej promocją, jest JPK Jarosław Paweł Krzymn, zwany dalej JPK. 2. Promocja trwa od 01 lutego 2014 do 30

Bardziej szczegółowo

Stanisław Cichocki. Natalia Nehrebecka Katarzyna Rosiak-Lada. Zajęcia 3

Stanisław Cichocki. Natalia Nehrebecka Katarzyna Rosiak-Lada. Zajęcia 3 Stansław Cchock Natala Nehrebecka Katarzyna Rosak-Lada Zajęca 3 1. Dobrod dopasowana równana regresj. Współczynnk determnacj R 2 Dekompozycja warancj zmennej zależnej Współczynnk determnacj R 2 2. Zmenne

Bardziej szczegółowo

Badanie współzależności dwóch cech ilościowych X i Y. Analiza korelacji prostej

Badanie współzależności dwóch cech ilościowych X i Y. Analiza korelacji prostej Badane współzależnośc dwóch cech loścowych X Y. Analza korelacj prostej Kody znaków: żółte wyróżnene nowe pojęce czerwony uwaga kursywa komentarz 1 Zagadnena 1. Zwązek determnstyczny (funkcyjny) a korelacyjny.

Bardziej szczegółowo

Statystyka Inżynierska

Statystyka Inżynierska Statystyka Inżynerska dr hab. nż. Jacek Tarasuk AGH, WFIS 013 Wykład DYSKRETNE I CIĄGŁE ROZKŁADY JEDNOWYMIAROWE Zmenna losowa, Funkcja rozkładu, Funkcja gęstośc, Dystrybuanta, Charakterystyk zmennej, Funkcje

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Komputer kwantowy Zasady funkcjonowania. Dr hab. inż. Krzysztof Giaro Politechnika Gdańska Wydział ETI

Komputer kwantowy Zasady funkcjonowania. Dr hab. inż. Krzysztof Giaro Politechnika Gdańska Wydział ETI Komputer kwantowy Zasady funkcjonowana Dr hab. nż. Krzysztof Garo Poltechnka Gdańska Wydzał ETI Oblczena kwantowe. R. Feynman [985] symulację zachowana układu kwantowego należy przeprowadzć na "maszyne"

Bardziej szczegółowo

Badania sondażowe. Braki danych Konstrukcja wag. Agnieszka Zięba. Zakład Badań Marketingowych Instytut Statystyki i Demografii Szkoła Główna Handlowa

Badania sondażowe. Braki danych Konstrukcja wag. Agnieszka Zięba. Zakład Badań Marketingowych Instytut Statystyki i Demografii Szkoła Główna Handlowa Badana sondażowe Brak danych Konstrukcja wag Agneszka Zęba Zakład Badań Marketngowych Instytut Statystyk Demograf Szkoła Główna Handlowa 1 Błędy braku odpowedz Całkowty brak odpowedz (UNIT nonresponse)

Bardziej szczegółowo

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007 Zak lad Metod Obliczeniowych Chemii UJ 14 marca 2007 Rzad 1 Zamiast wst epu 2 Rzad Notacja dużego O Notacja Ω Notacja Θ 3 S lowniczek Rzad Algorytm W matematyce oraz informatyce to skończony, uporzadkowany

Bardziej szczegółowo

PODSTAWA WYMIARU ORAZ WYSOKOŚĆ EMERYTURY USTALANEJ NA DOTYCHCZASOWYCH ZASADACH

PODSTAWA WYMIARU ORAZ WYSOKOŚĆ EMERYTURY USTALANEJ NA DOTYCHCZASOWYCH ZASADACH PODSTAWA WYMIARU ORAZ WYSOKOŚĆ EMERYTURY USTALANEJ NA DOTYCHCZASOWYCH ZASADACH Z a k ł a d U b e z p e c z e ń S p o ł e c z n y c h Wprowadzene Nnejsza ulotka adresowana jest zarówno do osób dopero ubegających

Bardziej szczegółowo

Drzewa AVL definicje

Drzewa AVL definicje Drzewa AVL definicje Uporzadkowane drzewo binarne jest drzewem AVL 1, jeśli dla każdego wez la różnica wysokości dwóch jego poddrzew wynosi co najwyżej 1. M D S C H F K Z typowe drzewo AVL minimalne drzewa

Bardziej szczegółowo

Zadanie na wykonanie Projektu Zespołowego

Zadanie na wykonanie Projektu Zespołowego Zadane na wykonane Projektu Zespołowego Celem projektu jest uzyskane następującego szeregu umejętnośc praktycznych: umejętnośc opracowana równoległych wersj algorytmów (na przykładze algorytmów algebry

Bardziej szczegółowo

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

// Liczy srednie w wierszach i kolumnach tablicy dwuwymiarowej // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib. Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy

Bardziej szczegółowo

Zmodyfikowana technika programowania dynamicznego

Zmodyfikowana technika programowania dynamicznego Zmodyfkowana technka programowana dynamcznego Lech Madeysk 1, Zygmunt Mazur 2 Poltechnka Wrocławska, Wydzał Informatyk Zarządzana, Wydzałowy Zakład Informatyk Wybrzeże Wyspańskego 27, 50-370 Wrocław Streszczene.

Bardziej szczegółowo

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika Wyk lad 4 Dzia lania na macierzach Określenie wyznacznika 1 Określenie macierzy Niech K bedzie dowolnym cia lem oraz niech n i m bed a dowolnymi liczbami naturalnymi Prostokatn a tablice a 11 a 12 a 1n

Bardziej szczegółowo

Wprowadzenie do Sieci Neuronowych Sieci rekurencyjne

Wprowadzenie do Sieci Neuronowych Sieci rekurencyjne Wprowadzene do Sec Neuronowych Sec rekurencyjne M. Czoków, J. Persa 2010-12-07 1 Powtórzene Konstrukcja autoasocjatora Hopfelda 1.1 Konstrukcja Danych jest m obrazów wzorcowych ξ 1..ξ m, gdze każdy pojedynczy

Bardziej szczegółowo

Modelowanie i obliczenia techniczne. Metody numeryczne w modelowaniu: Optymalizacja

Modelowanie i obliczenia techniczne. Metody numeryczne w modelowaniu: Optymalizacja Modelowane oblczena technczne Metody numeryczne w modelowanu: Optymalzacja Zadane optymalzacj Optymalzacja to ulepszane lub poprawa jakośc danego rozwązana, projektu, opracowana. Celem optymalzacj jest

Bardziej szczegółowo

Proces narodzin i śmierci

Proces narodzin i śmierci Proces narodzn śmerc Jeżel w ewnej oulacj nowe osobnk ojawają sę w sosób losowy, rzy czym gęstość zdarzeń na jednostkę czasu jest stała w czase wynos λ, oraz lczba osobnków n, które ojawły sę od chwl do

Bardziej szczegółowo

WPROWADZENIE DO TEORII DECYZJI STATYSTYCZNYCH

WPROWADZENIE DO TEORII DECYZJI STATYSTYCZNYCH Ćwczene nr 1 Statystyczne metody wspomagana decyzj Teora decyzj statystycznych WPROWADZENIE DO TEORII DECYZJI STATYSTYCZNYCH Problem decyzyjny decyzja pocągająca za sobą korzyść lub stratę. Proces decyzyjny

Bardziej szczegółowo

Parametry zmiennej losowej

Parametry zmiennej losowej Eonometra Ćwczena Powtórzene wadomośc ze statysty SS EK Defncja Zmenną losową X nazywamy funcję odwzorowującą przestrzeń zdarzeń elementarnych w zbór lczb rzeczywstych, taą że przecwobraz dowolnego zboru

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................

Bardziej szczegółowo

Stanisław Cichocki. Natalia Nehrebecka. Wykład 6

Stanisław Cichocki. Natalia Nehrebecka. Wykład 6 Stansław Cchock Natala Nehrebecka Wykład 6 1 1. Interpretacja parametrów przy zmennych objaśnających cągłych Semelastyczność 2. Zastosowane modelu potęgowego Model potęgowy 3. Zmenne cągłe za zmenne dyskretne

Bardziej szczegółowo

architektura komputerów w. 3 Arytmetyka komputerów

architektura komputerów w. 3 Arytmetyka komputerów archtektura komputerów w. 3 Arytmetyka komputerów Systemy pozycyjne - dodawane w systeme dwójkowym 100101011001110010101 100111101000001000 0110110011101 1 archtektura komputerów w 3 1 Arytmetyka bnarna.

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

± Δ. Podstawowe pojęcia procesu pomiarowego. x rzeczywiste. Określenie jakości poznania rzeczywistości

± Δ. Podstawowe pojęcia procesu pomiarowego. x rzeczywiste. Określenie jakości poznania rzeczywistości Podstawowe pojęca procesu pomarowego kreślene jakośc poznana rzeczywstośc Δ zmerzone rzeczywste 17 9 Zalety stosowana elektrycznych przyrządów 1/ 1. możlwość budowy czujnków zamenających werne każdą welkość

Bardziej szczegółowo

Prawdopodobieństwo i statystyka r.

Prawdopodobieństwo i statystyka r. Prawdopodobeństwo statystya.05.00 r. Zadane Zmenna losowa X ma rozład wyładnczy o wartośc oczewanej, a zmenna losowa Y rozład wyładnczy o wartośc oczewanej. Obe zmenne są nezależne. Oblcz E( Y X + Y =

Bardziej szczegółowo

Minimalizacja globalna. Algorytmy genetyczne i ewolucyjne.

Minimalizacja globalna. Algorytmy genetyczne i ewolucyjne. Mnmalzacja globalna Algorytmy genetyczne ewolucyjne. Lnearyzacja nelnowego operatora g prowadz do przyblżonych metod rozwązywana zagadnena odwrotnego. Wynk takej nwersj jest slne uzależnony od wyboru modelu

Bardziej szczegółowo

Statystyka Opisowa 2014 część 1. Katarzyna Lubnauer

Statystyka Opisowa 2014 część 1. Katarzyna Lubnauer Statystyka Opsowa 2014 część 1 Katarzyna Lubnauer Lteratura: 1. Statystyka w Zarządzanu Admr D. Aczel 2. Statystyka Opsowa od Podstaw Ewa Waslewska 3. Statystyka, Lucjan Kowalsk. 4. Statystyka opsowa,

Bardziej szczegółowo

Trzecie laboratoria komputerowe ze Staty Testy

Trzecie laboratoria komputerowe ze Staty Testy Trzece laboratora komputerowe ze Staty Testy Korzystać będzemy z danych dane_3.dta. Chcemy (jak zwykle ) oszacować model zarobków. Tym razem nteresująca nas postać modelu to: p0 = β + β pd0 + β pl08 +

Bardziej szczegółowo

Architektura systemów komputerowych

Architektura systemów komputerowych Architektura systemów komputerowych Grzegorz Mazur Zak lad Metod Obliczeniowych Chemii Uniwersytet Jagielloński 12 kwietnia 2011 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 12 kwietnia

Bardziej szczegółowo

Modele wieloczynnikowe. Modele wieloczynnikowe. Modele wieloczynnikowe ogólne. α β β β ε. Analiza i Zarządzanie Portfelem cz. 4.

Modele wieloczynnikowe. Modele wieloczynnikowe. Modele wieloczynnikowe ogólne. α β β β ε. Analiza i Zarządzanie Portfelem cz. 4. Modele weloczynnkowe Analza Zarządzane Portfelem cz. 4 Ogólne model weloczynnkowy można zapsać jako: (,...,,..., ) P f F F F = n Dr Katarzyna Kuzak lub (,...,,..., ) f F F F = n Modele weloczynnkowe Można

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

APROKSYMACJA QUASIJEDNOSTAJNA

APROKSYMACJA QUASIJEDNOSTAJNA POZNAN UNIVE RSITY OF TE CHNOLOGY ACADE MIC JOURNALS No 73 Electrcal Engneerng 213 Jan PURCZYŃSKI* APROKSYMACJA QUASIJEDNOSTAJNA W pracy wykorzystano metodę aproksymacj średnokwadratowej welomanowej, przy

Bardziej szczegółowo

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera Określenie podpierścienia Definicja 9.. Podpierścieniem pierścienia (P, +,, 0, ) nazywamy taki podzbiór A P, który jest pierścieniem ze wzgledu

Bardziej szczegółowo

Statystyka Opisowa 2014 część 2. Katarzyna Lubnauer

Statystyka Opisowa 2014 część 2. Katarzyna Lubnauer Statystyka Opsowa 2014 część 2 Katarzyna Lubnauer Lteratura: 1. Statystyka w Zarządzanu Admr D. Aczel 2. Statystyka Opsowa od Podstaw Ewa Waslewska 3. Statystyka, Lucjan Kowalsk. 4. Statystyka opsowa,

Bardziej szczegółowo

Funkcje i charakterystyki zmiennych losowych

Funkcje i charakterystyki zmiennych losowych Funkcje charakterystyk zmennych losowych Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Intelgencj Metod Matematycznych Wydzał Informatyk Poltechnk Szczecńskej 5. Funkcje zmennych losowych

Bardziej szczegółowo

SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW

SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW SZACOWANIE NIEPEWNOŚCI POMIARU METODĄ PROPAGACJI ROZKŁADÓW Stefan WÓJTOWICZ, Katarzyna BIERNAT ZAKŁAD METROLOGII I BADAŃ NIENISZCZĄCYCH INSTYTUT ELEKTROTECHNIKI ul. Pożaryskego 8, 04-703 Warszawa tel.

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej

Bardziej szczegółowo

Dyskretne modele populacji

Dyskretne modele populacji Dyskretne modele populacji Micha l Machtel Adam Soboczyński 19 stycznia 2007 Typeset by FoilTEX Dyskretne modele populacji [1] Wst ep Dyskretny opis modelu matematycznego jest dobry dla populacji w których

Bardziej szczegółowo

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym. Rozdzia l 11 Przestrzenie Euklidesowe 11.1 Definicja, iloczyn skalarny i norma Definicja 11.1 Przestrzenia Euklidesowa nazywamy par e { X K,ϕ }, gdzie X K jest przestrzenia liniowa nad K, a ϕ forma dwuliniowa

Bardziej szczegółowo

Rozliczanie kosztów Proces rozliczania kosztów

Rozliczanie kosztów Proces rozliczania kosztów Rozlczane kosztów Proces rozlczana kosztów Koszty dzałalnośc jednostek gospodarczych są złoŝoną kategorą ekonomczną, ujmowaną weloprzekrojowo. W systeme rachunku kosztów odbywa sę transformacja jednych

Bardziej szczegółowo

p Z(G). (G : Z({x i })),

p Z(G). (G : Z({x i })), 3. Wykład 3: p-grupy twerdzena Sylowa. Defncja 3.1. Nech (G, ) będze grupą. Grupę G nazywamy p-grupą, jeżel G = dla pewnej lczby perwszej p oraz k N. Twerdzene 3.1. Nech (G, ) będze p-grupą. Wówczas W

Bardziej szczegółowo