Wyszukiwanie wyrazów w pliku tekstowym
|
|
- Maksymilian Michalak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Wyszukiwanie wyrazów w pliku tekstowym Celem ćwiczenia jest: 1. Poznanie i realizacja praktyczna procedur operacji wejścia/ wyjścia na plikach danych 2. Przegląd algorytmów wyszukiwania wyrazów w plikach 3. Zastosowanie funkcji skrótu w rozwiązywaniu problemów obliczeniowych 4. Oszacowanie czasu obliczeń i wprowadzenie do metod optymalizacji wydajności obliczeń W części praktycznej połączenie uzyskanej wiedzy i umiejętności w celu realizacji praktycznej efektywnego algorytmu Karpa-Rabina [1]. 1. Operacje na plikach tekstowych w języku ADA Biblioteka Ada.Text_IO realizuje funkcje odczytu nie tylko ze urządzeń wejściowych i wyjściowych o typie standardowym. Pozwala na odczyt znaków z plików i pisanie tekstów do plików. Operacje na plikach tekstowych w języku Ada są dobrze opisane w podręczniku. W skrócie są to operacje podobne do dobrze znanych używanych do czytania znaków i linii tekstu z klawiatury. W uproszczeniu, zasadnicza różnica polega na tym, że przed wykonaniem tych operacji należy dokonać jednokrotnie czynności otwarcia pliku przy podaniu jego nazwy, dalej przy operacjach podawać odniesienie do identyfikatora pliku otrzymanego przy otwarciu i w końcu dokonać zamknięcia pliku.ej Infile : File_Type; --- deklaracja zmiennej identyfikującej plik Open(Infile, In_File, "test.txt"); -- otwarcie pliku Infile do odczytu In_File while not End_Of_File(infile) loop Get_Line(Infile, Line, Llength); --- czytanie linia po linii end loop 2. Algorytmy wyszukiwania wzorca w tekście Problem: Dany jest tekst złożony z m znaków T[1..m] oraz przeszukiwany ciąg x[1..n]. złożony z n znaków; gdzie n > m. Problem dopasowania wzorca polega na znalezieniu takiego indeksu i, dla którego T[i.. i+m-1] = x[1.. m]. To oznacza, że wzorzec x jest fragmentem łańcucha T występującym na pozycji i-tej. Często interesujące jest wskazanie wszystkich wystąpień wzorca x w tekście T Rozwiązanie naiwne. 2.1 Algorytm naiwny wersja z wyszukiwania wszystkich wystąpień wzorca. Ustawiamy indeks i na początku tekstu T. Czyli i=1, wybieramy ciąg znaków o długości n poczynając od pierwszej pozycji w tekście T. Porównujemy T[1..n] i wzorzec x[1..n] znak po znaku maksymalnie n razy. Jeśli porównanie przebiegło pomyślnie I=1 jest pierwszym znalezionym rozwiązaniem. Następnie przesuwamy
2 okno o długości n do następnego znaku czyli i= i+1 i porównujemy nowy wycinek T[i..i+n-1] ze wzorcem jak poprzednio. Zwiększanie i zatrzymujemy, gdy dojdziemy do końca tekstu T. Czyli gdy i > m-n. Złożoność obliczeniowej algorytmu naiwnego jest równa O(n m), gdzie n oznacza liczbę znaków tekstu, a m liczbę znaków wzorca. Jednakże w typowych warunkach algorytm pracuje w czasie O(n), ponieważ najczęściej wystarczy już porównanie kilku początkowych znaków wycinka z wzorcem, aby stwierdzić, iż są one niezgodne. 2.2 Algorytm Rabina-Karpa Istnieje szereg innych algorytmów, ale skoncentrujemy się na algorytmie Karpa-Rabina [1]. Algorytm Rabina- Karpa jest gorszy w wyszukiwaniu pojedynczego wzorca od algorytmów takich jak Knutha-Morrisa-Pratta lub Boyer a-moore a, ponieważ jest najwolniejszy w przypadku pesymistycznego ułożenia ciągu. Jednak jest wyjątkowo efektywny przy wyszukiwaniu wielo -wzorcowym. Czyli jest on szczególnie wydajny jeśli poszukujemy w tekście T[1..m] wielu ciągów o długości n, powiedzmy szukamy j wzorców X j [1..n]. Idea algorytmu polega na wykorzystaniu funkcji skrótu zwanej często funkcją mieszającą a w języku angielskim hash function. Funkcja skrótu jest to funkcja, która przyporządkowuje dowolnie dużej strukturze danych krótką, zwykle posiadającą stały rozmiar, niespecyficzną, pseudo-losową wartość, tzw. skrót nieodwracalny. Algorytm tworzy funkcje skrótu z poszukiwanych ciągów i dalej podobnie jak algorytm naiwny wykorzystując wędrujące znak po znaku okno wyszukuje w tekście T ciągi n wyrazowe i oblicza z nich funkcje skrótu [1]. Porównanie następuje w dwóch etapach: najpierw sprawdzane są funkcje skrótu. a przy ich zgodności przechodzimy do szczegółowego porównania znak po znaku jak w algorytmie naiwnym. Przyspieszenie działania uzyskuje się ponieważ porównanie skrótów jest znacznie szybsze niż całych ciągów szczególnie gdy są bardzo złożone lub gdy raz obliczony skrót może być wykorzystywany wielokrotnie. Efektywność praktycznie przygotowanego algorytmu dwufazowego zależy od wyboru funkcji skrótu. Istotnymi parametrami są: - nakład obliczeniowy potrzebny do wyznaczenia skrótów - algorytmu liczenia skrótów kolizyjność [5] omówiona także poniżej w p.3. poniżej 3. Funkcje skrótu Funkcja skrótu, jednokierunkowa funkcja mieszająca lub funkcja haszująca to funkcja, która przyporządkowuje dowolnie dużej wiadomości krótką, zwykle posiadającą stały rozmiar wartość skrót wiadomości. Kolizja funkcji skrótu H to taka para różnych wiadomości m1, m2, że mają one taką samą wartość skrótu, tj. H(m1) = H(m2) Bezkolizyjna funkcja skrótu to taka w której brak jest kolizji, czyli sytuacji w których z dwóch różnych wiadomości wygenerowany zostanie taki sam skrót Zastosowanie funkcji skrótu w rozwiązywaniu problemów obliczeniowych W informatyce funkcje skrótu pozwalają na ustalenie krótkich i łatwych do weryfikacji sygnatur dla dowolnie dużych zbiorów danych. Takie sygnatury mogą chronić przed przypadkowymi lub celowo wprowadzonymi
3 modyfikacjami danych (sumy kontrolne), pozwalają się przekonać czy pobrane dane i dokumenty elektroniczne np. programy, dokumentacje, dokumenty urzędowe nie zostały uszkodzone lub celowo zmienione. Powszechnie stosuje się funkcje skrótu w sieciach komputerowych i telekomunikacji zabezpieczając pakiety i ramki przez zniekształceniem w wyniku zakłóceń przy przesyłaniu. Numery systemu IBAN (International Bank Account Number) zostały wprowadzone normą ISO w celu weryfikacji numerów kont bankowych w międzynarodowym przepływie pieniędzy. W numerach rachunków bankowych IBAN dwie pierwsze cyfry są liczbą kontrolną wynikającą z przeliczenia istotnej informacyjnie zawartości i chronią przed pomyłką pisarską. Często na stronach internetowych podaje się wyliczone skróty w celu weryfikacji (najczęściej są nimi CRC32, MD5 lub SHA-1). Funkcje skrótu mają również zastosowania przy optymalizacji dostępu do struktur danych w programach komputerowych (tablice haszujące), a także wykorzystywane są w podpisie cyfrowym. W podpisie cyfrowym, często spotykanym w życiu codziennym przy przesyłaniu plików PDF z banków. Funkcja skrótu liczona jest z zawartości informacyjnej dokumentu, dalej szyfrowana utajnionym kluczem prywatnym banku i dołączana do pliku PDF, To jest podpis elektroniczny. Taki dokument oraz zaszyfrowany skrót, podpis elektroniczny, mogą być przesyłane bezpiecznie także w niebezpiecznym otoczeniu. Na przykład publiczną siecią komputerową. Odbiorca wykonuje własnego przeliczenia funkcji skrótu i odszyfrowania podpisu za pomocą znanego klucza publicznego osoby podpisującej, banku, w celu uzyskania wartości skrótu obliczonego przez nadawcę. Proste porównania utwierdza nas w przekonaniu, że integralność dokumentu nie został naruszona i że autorem jest posiadacz klucza prywatnego.
4 Pojawią się wątpliwość dlaczego zaszyfrowano tylko skrót? Przecież można zaszyfrować całą wiadomość i dołączyć tak jak powyżej postąpiono ze skrótem. Odbiorca wykona operację odszyfrowania i porówna wiadomości ze sobą. Jest to możliwe i unika się problemu kolizji. Jednak metoda jest niepraktyczna przy wiadomościach o dużym rozmiarze, ponieważ wtedy sam podpis jest dużego rozmiaru (przy zastosowaniu skrótu podpis ma rozmiar stały i zwykle niewielki w zestawieniu z wiadomością)oraz nakład obliczeniowy potrzebny do sporządzenia podpisu przez nadawcę i do deszyfrowania przez odbiorcę jest duży i zmienny (przy funkcji skrótu stały i typowo znacznie mniejszy). 3.3 Krocząca funkcja skrótu rolling hash. Jak wspomniano do skrócenia czasu obliczeń lub uzyskania dużej efektywności, szybkości obliczeń przy implementacji algorytmu Rabina-Karpa warto starannie dobrać funkcję skrótu w taki sposób, aby obliczać ją możliwe szybko i zadbać o niewielkie prawdopodobieństwo kolizji. W tekście T[1..m] poszukujemy wielu ciągów o długości n, powiedzmy szukamy j wzorców X j [1..j, 1..n]. Jeśli w pierwszym kroku obliczono funkcję skrótu dla T[1..n] to w kolejnym potrzebna jest wartość dla tekstu T[2..n+1] i tak dalej. Widać, że bez względu na długość n szukanego ciągu w kolejnych iteracjach ubył 1 znak i dodany został także jeden Dobrym rozwiązaniem jest zastosowanie funkcji w której nie trzeba za każdym razem obliczać funkcji skrótu, ale można uprościć obliczenia znając wartość poprzednią. Podobnie realizuje się obliczenia przy wyznaczaniu ruchomej średniej zwanej także średnią kroczącą. W naszym przypadku jej odpowiednik, czyli suma krocząca numerów porządkowych znaków w kodzie ASCII jest jednym z możliwych przykładów kroczącej funkcji skrótu. Niezwykle prostą w implementacji oraz znamienną tym, że obliczenie wartości następnej może się opierać na użyciu wartości poprzedniej i zaledwie dwóch operacjach dodatkowych. Dodanie nowej wartości i odjęcie jednej wartości. Przykład. Poszukiwana fraza to: x [1..3] = { m, a, ]; W tekście T T[1..10} = [ A, l, a,, m, a,, A, s, a ]; Funkcja skrótu to suma pozycji trzech kolejnych znaków. Hash := 0; for ix In 1..3 loop Hask := Hash + x[ix]; end loop; Patrząc w tabelę kodowania znaków ASCII otrzymamy H(x) = = 238; // ma spacja 238 to poszukiwany skrót Obliczamy skrót napisu T[1..3] sumując pozycje H(T,1) = = 270 // Ala 271 wyklucza zgodność, zatem postępujemy dalej licząc skrót dla T[2..4}.
5 możemy policzyć sumę ale możemy wyznaczając H(T,2) jako H(T,2) = = 237 // la spacja także możemy H(T,2) = H(t,1) = = 237 // odjąć A dodać spacja. Przy krótkim wzorcu zysk jest niewielki, ale zaoszczędzimy obliczania wraz ze wzrostem długości wzorca, Sprawdzimy jeszcze tylko jeden kolejny krok licząc skrót dla T[3..5] napis a m ; H(T,3) = H(t,3) = = 238!!! // odejmujemy znikające l dodajemy m 238 jest poszukiwaną funkcją skrótu zatem wykonujemy fazę drugą czyli porównanie napisów znak po znaku, widać, że to porównanie nie da wyniku pozytywnego. Uwaga1. widać, że litery l i m sąsiadują w alfabecie stąd wynik jest łatwy do przewidzenia. Uwaga 2: podana funkcja skrótu powoduje znaczą ilość kolizji przy swojej prostocie. Wniosek: Prostota jest okupiona częstymi kolizjami. Poszukując frazy Pies i kot wartość funkcji skrótu dla niej będzie równa kot i Pies ale także pies i Kot oraz pies i kot (dlaczego, patrz konstrukcja kodu ASCII i numery porządkowe liter wielkich i małych). Polecaną modyfikacją [8] jest zastąpienie sumy wielomianem. Wybieramy całkowitą liczbę N, ze względu na szybkość liczenia w urządzeniach opartych o zapis binarny N powinno być wielokrotnością liczby 2. Funkcja skrótu, hash, policzona dla tekstu T przy wzorcu o długości m przyjmie postać H (T,1) = N**(m-1)*T(1) + N**(m-2)*T(1) +... N*T(m-1) + T(m); Tu możemy także łatwo obliczyć kolejną wartość skrótu na podstawie poprzedniej w trzech operacjach arytmetycznych. Dodatkowo umiejętnie dobierając liczbę N lub stosując operację modulo można ograniczyć liczbę operacji tylko do dwóch. Proszę porównać z przykładem w [8]. 4. Oszacowanie czasu obliczeń i wprowadzenie do metod skrócenia czasu obliczeń Dotychczas opracowane programy pracowały w oderwaniu od czasu realnego czy astronomicznego. Jeśli chcemy oszacować realny programu musimy skorzystać z funkcji odczytu zegara czasu astronomicznego. Funkcji dostępu do zegara czasu astronomicznego dostarcza moduł Real_Time.. Implementacja tego modułu bywa różna i stąd często różne wyniki zależnie od wersji kompilatora i systemu operacyjnego. W szczególności należy się liczyć z ograniczoną dokładnością funkcji odmierzania czasu. Problemy te opisano także w rozdziale 14.6 skryptu. Poniższy przykład pokaże jakie rozbieżności musimy zaakceptować. Program wykonuje dziesięciokrotnie najkrótsze opóźnienie i oblicza jakie było to opóźnienie w istocie. To świadomie nie użyto określenia w rzeczywistości ponieważ błędy dotyczą w równym stopniu procedury oczekiwania delay jak i procedur odczytu czasu Clock.
6 with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use ada.integer_text_io; with Ada.Real_Time; use Ada.Real_Time; procedure Run_time is StartTime, StopTime : Time; begin -- put_line("start"); for ix in loop StartTime := Clock; delay Duration'Small; StopTime := Clock; New_Line; put (" "); Put(Natural(To_Duration(StopTime - StartTime)*10**9)); put(" ns"); end loop; end Run_Time; I oto przykładowy wynik pracy. Za pierwszym razem Kolejne uruchomienie ns 5699 ns 4344 ns 4262 ns 4014 ns 4655 ns 4123 ns 4304 ns 4115 ns 4380 ns 4085 ns 4240 ns 4017 ns 4412 ns 4197 ns 4108 ns 4037 ns 4270 ns 3967 ns 4293 ns 4.1. Wersje debug i release oraz opcje optymalizacji. Projektanci systemów kompilacji opracowując je podążają za typowym tokiem przygotowania programów przez programistów. W początkowej fazie przygotowania programów istotne jest wyłowienie możliwie dużej liczby błędów z ang. bug i usunięcie ich. Ten proces nazywamy debuggowaniem i dobry system kompilacji powinien w tym okresie wykonywać możliwie wiele testów kontrolnych w czasie biegu programu, co odbywa się kosztem wydajności obliczeń. W tej fazie przygotowań warto zastosować profil złożony z różnych opcji. W adagide jest to profil debug. Po zakończeniu fazy uruchamiania i testowania gotowy program można pozbawić opcji kontroli i dodatkowo pozwolić kompilatorowi dokonać optymalizacji czasu wykonania lub optymalizacji zasobów wykorzystywanych przez program. Czyli przygotować wersję produkcyjną po angielsku określaną jako release. Do opracowania Wprawka 1.
7 Proszę przygotować program testowy jak wyżej i a. sprawdzić jakie czasy wykonania otrzymujemy w przypadku zastosowania opcji debug z parametrem kontroli przekroczeń zakresów gnato oraz w opcji release i przy zastosowaniu optymalizacji o2. b. Czy uwinięcie komentarza z linii linii wypisującej tekst start i zmienia wyniki eksperymentu. Jaki jest wynik obserwacji i jak możemy wytłumaczyć obserwowane wyniki? Zadanie 1. Przygotować program wyszukujący i zliczający słowa w tekście zawartym w pliku metodą naiwną i metodą Rabina-Karpa. Porównać czas obliczeń i dokonać optymalizacji programu od kątem czasu wykonania wykorzystując obserwacje z realizacji wprawki. Wybór funkcji skrótu jest dowolny. Należy pamiętać, że wybór ten i realizacja decyduje o czacie wykonania wyszukiwań. Eksperyment przeprowadzić na anglojęzycznym przekładzie Illiady Homera dostępnym pod adresem (zapisać w pliku tekstowym) poszukiwane wyrazy, które należy policzyć to, ciągi sześcioznakowe "Apollo", "Nestor ", "Ulysse", "Saturn Dodatkowo podąć należy liczbę przeczytanych linii tekstu, czyli wykonania procedury Get_line. Poniżej wynik pracy dwóch algorytmów, bez optymalizacji znaleziono: 142 wyrazow Apollo znaleziono: 95 wyrazow Nestor znaleziono: 128 wyrazow Ulysse znaleziono: 84 wyrazow Saturn w czasie 691 ms liczba akapitów xxxx znaleziono: 142 wyrazow Apollo znaleziono: 95 wyrazow Nestor znaleziono: 128 wyrazow Ulysse znaleziono: 84 wyrazow Saturn w czasie 322 ms liczba akapitów xxxx porównać uzyskane wyniki z wynikami osiąganymi przez programy innych grup i dokonać optymalizacji czasu obliczeń.
8 Literatura [1] Richard M. Karp, Michael O. Rabin. Efficient randomized pattern-matching algorithms. IBM Journal of Research and Development. 31 (2), marzec [2] EXACT STRING MATCHING ALGORITHMS, [3] Wirth, N. (2001). Algorytmy + struktury danych = programy. WNT, Warszawa (tłum. zang.). [4] Sedgewick, R. (1983). Algorithms. Addison-Wesley, Reading, Massachussets.. [5] przegląd funkcji skrótu [6] Rodwald, P. : KRYPTOGRAFICZNE FUNKCJE SKRÓTU. [7] Rivest R., The MD4 message-digest algorithm, Advances in Cryptology, Proc. Crypto 90, LNCS 597, Springer- Verlag, [8] Rolling Hash (Rabin-Karp Algorithm)
Algorytmy przeszukiwania wzorca
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy
Bardziej szczegółowoAlgorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne
Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może
Bardziej szczegółowoWykład 6. Wyszukiwanie wzorca w tekście
Wykład 6 Wyszukiwanie wzorca w tekście 1 Wyszukiwanie wzorca (przegląd) Porównywanie łańcuchów Algorytm podstawowy siłowy (naive algorithm) Jak go zrealizować? Algorytm Rabina-Karpa Inteligentne wykorzystanie
Bardziej szczegółowoWprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna
1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez
Bardziej szczegółowoINŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.
Bardziej szczegółowoKryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7
Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 7 Spis treści 11 Algorytm ElGamala 3 11.1 Wybór klucza.................... 3 11.2 Szyfrowanie.....................
Bardziej szczegółowo2 Kryptografia: algorytmy symetryczne
1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;
Bardziej szczegółowo2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik
Bardziej szczegółowoPolcode Code Contest PHP-10.09
Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania
Bardziej szczegółowoWykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Problem pakowania plecaka System kryptograficzny Merklego-Hellmana
Bardziej szczegółowoLaboratorium nr 1 Szyfrowanie i kontrola integralności
Laboratorium nr 1 Szyfrowanie i kontrola integralności Wprowadzenie Jedną z podstawowych metod bezpieczeństwa stosowaną we współczesnych systemach teleinformatycznych jest poufność danych. Poufność danych
Bardziej szczegółowowagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Bardziej szczegółowoProgramowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Bardziej szczegółowoWstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie
Bardziej szczegółowoZakład Usług Informatycznych OTAGO
Zakład Usług Informatycznych OTAGO Opis konstrukcji Wirtualnego Numeru Rachunku dotyczący płatności masowych wersja 1.4 autor: Tomasz Rosochacki Gdańsk, 2012-11-27 Spis treści 1. Wprowadzenie.... 3 2.
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 8
Plan wykładu: Kodowanie. : wyszukiwanie wzorca w tekście, odległość edycyjna. Kodowanie Kodowanie Kodowanie jest to proces przekształcania informacji wybranego typu w informację innego typu. Kod: jest
Bardziej szczegółowoAproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
Bardziej szczegółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoAlgorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)
Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie
Bardziej szczegółowoIdentyfikacja znamion ukrytego plagiatu. Z wykorzystaniem IDEA Caseware
Identyfikacja znamion ukrytego plagiatu Z wykorzystaniem IDEA Caseware Dzięki zastosowaniu w IDEI zaawansowanego modułu importu danych istnieje możliwość wykorzystania oprogramowania do identyfikacji tzw.
Bardziej szczegółowoOptymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoZastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA
Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA Grzegorz Bobiński Uniwersytet Mikołaja Kopernika Toruń, 22.05.2010 Kodowanie a szyfrowanie kodowanie sposoby przesyłania danych tak, aby
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowoZadanie projektowe nr 1
Zadanie projektowe nr 1 Badanie efektywności operacji dodawania (wstawiania), usuwania oraz wyszukiwania elementów w podstawowych strukturach danych Należy zaimplementować oraz dokonać pomiaru czasu działania
Bardziej szczegółowoSieci Komputerowe Mechanizmy kontroli błędów w sieciach
Sieci Komputerowe Mechanizmy kontroli błędów w sieciach dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Zagadnienia Zasady kontroli błędów
Bardziej szczegółowoWyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Bardziej szczegółowoZapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Bardziej szczegółowodo instrukcja while(wyrażenie);
emat zajęć: Operatory i instrukcje w języku C - 3 Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (instrukcja cyklu: while) Język C oferuje kilka instrukcji cyklu (pętli). Oprócz wprowadzonej wcześniej
Bardziej szczegółowoINSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win
INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win Łukasz Awsiukiewicz Solid Security wew 1211 l.awsiukiewicz@solidsecurity.pl wersja 1.0 Pobieramy program gpg4win ze strony http://www.gpg4win.org/download.html.
Bardziej szczegółowoInstytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.
Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Generator liczb losowych o rozkładzie Rayleigha. Generator liczb losowych o rozkładzie Rayleigha. 1. Cel ćwiczenia
Bardziej szczegółowoWykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład VI - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2013 c Copyright 2013 Janusz Słupik Podstawowe zasady bezpieczeństwa danych Bezpieczeństwo Obszary:
Bardziej szczegółowoZarys algorytmów kryptograficznych
Zarys algorytmów kryptograficznych Laboratorium: Algorytmy i struktury danych Spis treści 1 Wstęp 1 2 Szyfry 2 2.1 Algorytmy i szyfry........................ 2 2.2 Prosty algorytm XOR......................
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 9
Plan wykładu:. Algorytmy numeryczne. Funkcja skrótu jest to funkcja H, która dla do dowolnej informacji m przyporządkowuje niespecyficzną wartość h, mającą cechy pseudolosowe. Cechy: skróty są zazwyczaj
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoPrzewodnik użytkownika
STOWARZYSZENIE PEMI Przewodnik użytkownika wstęp do podpisu elektronicznego kryptografia asymetryczna Stowarzyszenie PEMI Podpis elektroniczny Mobile Internet 2005 1. Dlaczego podpis elektroniczny? Podpis
Bardziej szczegółowoBezpieczeństwo aplikacji typu software token. Mariusz Burdach, Prevenity. Agenda
Bezpieczeństwo aplikacji typu software token Mariusz Burdach, Prevenity Agenda 1. Bezpieczeństwo bankowości internetowej w Polsce 2. Główne funkcje aplikacji typu software token 3. Na co zwrócić uwagę
Bardziej szczegółowoCIĄGI wiadomości podstawowe
1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie
Bardziej szczegółowoEGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY CZĘŚĆ
Bardziej szczegółowow analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą
Bardziej szczegółowoProgramowanie strukturalne
Programowanie strukturalne wykład pliki tekstowe Agata Półrola Wydział Matematyki UŁ sem. letni 2011/2012 http://www.math.uni.lodz.pl/~polrola Pliki wewnętrzne i zewnętrzne Dotychczas przy pobieraniu danych
Bardziej szczegółowoZamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.
Spis treści: Czym jest szyfrowanie Po co nam szyfrowanie Szyfrowanie symetryczne Szyfrowanie asymetryczne Szyfrowanie DES Szyfrowanie 3DES Szyfrowanie IDEA Szyfrowanie RSA Podpis cyfrowy Szyfrowanie MD5
Bardziej szczegółowoKompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/
STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go
Bardziej szczegółowoUsługa wyciągi elektroniczne Przewodnik Użytkownika
Usługa wyciągi elektroniczne Przewodnik Użytkownika 2012-01-30 SPIS TREŚCI 1. Wstęp... 3 2. Przesyłanie wyciągów pocztą elektroniczną... 3 3. Przeglądanie wyciągów w Repozytorium... 3 3.1. Wymagania techniczne...
Bardziej szczegółowoTemat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Bardziej szczegółowoRozdział 1 PROGRAMOWANIE LINIOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując
Bardziej szczegółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowoII klasa informatyka rozszerzona SZYFROWANIE INFORMACJI
II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI STEGANOGRAFIA Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta. W odróżnieniu od kryptografii
Bardziej szczegółowoWstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Bardziej szczegółowoTematy lekcji informatyki klasa 4a luty/marzec 2013
Tematy lekcji informatyki klasa 4a luty/marzec 2013 temat 11. z podręcznika (str. 116-120) Jak uruchomić edytor tekstu MS Word 2007? ćwiczenia 2-5 (str. 117-120); Co to jest przycisk Office? W jaki sposób
Bardziej szczegółowoInformatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoZastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej
Obliczenia w systemach resztowych [Song Y. Yan] Przykład: obliczanie z = x + y = 123684 + 413456 na komputerze przyjmującym słowa o długości 100 Obliczamy kongruencje: x 33 (mod 99), y 32 (mod 99), x 8
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoWprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka
Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu
Bardziej szczegółowoSortowanie przez wstawianie Insertion Sort
Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowo1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji
Scenariusz lekcji 1 TEMAT LEKCJI: Algorytmy wyszukiwania wzorca w ciągu 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicje wyszukiwania wzorca w tekście; opisać algorytm naiwny wyszukiwania
Bardziej szczegółowoPodstawy systemów kryptograficznych z kluczem jawnym RSA
Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych
Bardziej szczegółowoŁAMIEMY SZYFR CEZARA. 1. Wstęp. 2. Szyfr Cezara w szkole. Informatyka w Edukacji, XV UMK Toruń, 2018
Informatyka w Edukacji, XV UMK Toruń, 2018 ŁAMIEMY SZYFR CEZARA Ośrodek Edukacji Informatycznej i Zastosowań Komputerów 02-026 Warszawa, ul. Raszyńska 8/10 {maciej.borowiecki, krzysztof.chechlacz}@oeiizk.waw.pl
Bardziej szczegółowooperacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Bardziej szczegółowoNazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Bardziej szczegółowoARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
Bardziej szczegółowoInstrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x
Spis treści Wstęp... 1 Instalacja certyfikatów w programie pocztowym... 1 Instalacja certyfikatów własnych... 1 Instalacja certyfikatów innych osób... 3 Import certyfikatów innych osób przez odebranie
Bardziej szczegółowoZad. 3: Układ równań liniowych
1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich
Bardziej szczegółowoAlgorytm genetyczny (genetic algorithm)-
Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie
Bardziej szczegółowoKompresja tablic obliczeń wstępnych alternatywa dla tęczowych tablic. Michał Trojnara.
Kompresja tablic obliczeń wstępnych alternatywa dla tęczowych tablic Michał Trojnara Michal.Trojnara@pl.abnamro.com Cel prezentacji Zaproponowanie rozwiązania alternatywnego wobec popularnych ataków na
Bardziej szczegółowoLaboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie
Laboratorium Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie programowalnym FPGA. 1. Zasada działania algorytmów Algorytm Vernam a wykorzystuje funkcję
Bardziej szczegółowo1 abbbaabaaabaa -wzorzec: aaba
Algorytmy i złożoność obliczeniowa Laboratorium 14. Algorytmy tekstowe. 1. Algorytmy tekstowe Algorytmy tekstowe mają decydujące znaczenie przy wyszukiwaniu informacji typu tekstowego, ten typ informacji
Bardziej szczegółowoOpis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bardziej szczegółowoInstrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID
Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoCertyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA
Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoKod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
Bardziej szczegółowoWprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy
1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć
Bardziej szczegółowoSystemy liczbowe używane w technice komputerowej
Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.
Bardziej szczegółowoPLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).
PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów
Bardziej szczegółowoSCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO
SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowo0 + 0 = 0, = 1, = 1, = 0.
5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,
Bardziej szczegółowoznalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
Bardziej szczegółowoKlasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Bardziej szczegółowoTechniki wyszukiwania danych haszowanie
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Techniki wyszukiwania danych haszowanie 1 Cel
Bardziej szczegółowoMetoda eliminacji Gaussa. Autorzy: Michał Góra
Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowoDla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego
Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Bardziej szczegółowoPlan-de-CAMpagne kompatybilny z SEPA!
Plan-de-CAMpagne kompatybilny z SEPA! Coraz wyższe koszty płatności dokonywanych na poziomie międzynarodowym powodowały częste narzekania konsumentów i przedsiębiorców, którzy takie płatności wykonują
Bardziej szczegółowoSortowanie zewnętrzne
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoAlgorytmy genetyczne w interpolacji wielomianowej
Algorytmy genetyczne w interpolacji wielomianowej (seminarium robocze) Seminarium Metod Inteligencji Obliczeniowej Warszawa 22 II 2006 mgr inż. Marcin Borkowski Plan: Przypomnienie algorytmu niszowego
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowo