INSTYTUT BADAŃ SYSTEMOWYCH PAN WYDZIA L MATEMATYKI I NAUK INFORMACYJNYCH POLITECHNIKI WARSZAWSKIEJ. Algorytmy. i podstawy programowania
|
|
- Edyta Dudek
- 6 lat temu
- Przeglądów:
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
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ółowoZapis 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ółowoTwierdzenie 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ółowoLaboratorium 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ółowoSTATYSTYKA 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ółowoAnaliza 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ółowoZaawansowane 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ółowoI. 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ółowoUrzą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ółowoZestaw 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ółowoParadygmaty 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ółowoZaawansowane 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ółowoWeryfikacja 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ółowoProgramowanie 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ółowoD 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ółowoProblem 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ółowoMATEMATYKA 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ółowoBADANIA 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ółowoWikiWS 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ółowoAnaliza 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
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ółowoKURS 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ółowo5. 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ółowoProjekt 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ółowoKlasyfkator 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ółowoWyk 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ółowoSZTUCZNA 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
Ć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ółowoW 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ółowoSortowanie 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ółowoProblemy 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ółowoANALIZA 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ółowoALGEBRY 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ółowoORGANIZACJA 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
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ółowoAnaliza 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ółowoNatalia 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ółowoProcedura 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ółowoProste 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ółowoD 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ółowoPORADNIK 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ółowoDiagnostyka 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ółowoSYSTEM 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ółowoSTARE 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ółowoPodstawy 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ółowoWskaź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ółowoMETODA 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ółowoZESTAW 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ółowoNatalia 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ółowof(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ółowoKURS 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ółowoKodowanie 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ółowoRozkł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ółowoRozdzia 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ółowoRozwią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ółowoStatystyka. 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ółowoZadane 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ółowo5. 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ółowoFunctionalization. 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ółowoRegulamin 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ółowoStanisł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ółowoBadanie 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ółowoStatystyka 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ółowoZASADY 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ółowoKomputer 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ółowoBadania 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ółowoGrzegorz 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ółowoPODSTAWA 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ółowoDrzewa 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ółowoZadanie 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.
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ółowoZmodyfikowana 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ółowoWyk 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ółowoWprowadzenie 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ółowoModelowanie 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ółowoProces 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ółowoWPROWADZENIE 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ółowoParametry 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ółowoParadygmaty 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ółowoStanisł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ółowoarchitektura 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ółowoPodstawowe 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ę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ółowoPrawdopodobień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ółowoMinimalizacja 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ółowoStatystyka 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ółowoTrzecie 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ółowoArchitektura 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ółowoModele 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ółowo1 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ółowoAPROKSYMACJA 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ółowoWyk 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ółowoStatystyka 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ółowoFunkcje 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ółowoSZACOWANIE 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ółowoWstę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ółowoDyskretne 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ółowoRozdzia 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ółowoRozliczanie 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ółowop 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