Klasyczne problemy informatyki w Pythonie - Helion
TÅ‚umaczenie: Natalia Chounlamany-Turalska
ISBN: 9788301209933
stron: 250, Format: ebook
Data wydania: 2020-02-13
Księgarnia: Helion
Cena książki: 74,00 zł
Problemy informatyki, które wydają się nowe lub unikatowe, często są zakorzenione w klasycznych algorytmach, technikach kodowania czy zasadach inżynierii. I klasyczne metody są nadal najlepszym sposobem ich rozwiązywania! Opanowanie tych technik w Pythonie zwiększa szanse sukcesu realizowanych projektów webowych, przetwarzania danych, uczenia maszynowego i wielu innych. Książka Klasyczne problemy informatyki w Pythonie podszlifuje Twoje umiejętności rozwiazywania problemów informatyki na podstawie sprawdzonych scenariuszy, ćwiczeń i algorytmów wykorzystujących Pythona. Przedstawia ona dziesiątki wyzwań, począwszy od prostych zadań, takich jak algorytm wyszukiwania binarnego po klasteryzację danych przy użyciu k-średnich. Poczujesz szczególną satysfakcję, gdy uda Ci się rozwiązać zadania łączące informatykę z praktycznymi problemami, takimi jak aplikacje, dane, wydajność, a nawet pomyślne przejście przez następną rozmowę kwalifikacyjną! Książka jest przeznaczona dla średniozaawansowanych programistów Pythona.
Osoby które kupowały "Klasyczne problemy informatyki w Pythonie", wybierały także:
- GraphQL. Kurs video. Buduj nowoczesne API w Pythonie 169,00 zł, (50,70 zł -70%)
- Receptura na Python. Kurs Video. 54 praktyczne porady dla programist 199,00 zł, (59,70 zł -70%)
- Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty 149,00 zł, (44,70 zł -70%)
- Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame 249,00 zł, (74,70 zł -70%)
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
Spis treści
Klasyczne problemy informatyki w Pythonie eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Spis treści
- podziękowania
- o autorze
- o ilustracji na okładce
- wprowadzenie
- 1. Małe problemy
- 1.1. CiÄ…g Fibonacciego
- 1.1.1. Pierwsza próba rekurencyjna
- 1.1.2. Wykorzystywanie przypadków podstawowych
- 1.1.3. Memoizacja na ratunek
- 1.1.4. Memoizacja automatyczna
- 1.1.5. Uproszczony Fibonacci
- 1.1.6. Generowanie liczb Fibonacciego za pomocÄ… generatora
- 1.2. Trywialna kompresja
- 1.3. Szyfr nie do złamania
- 1.3.1. Przygotowywanie danych
- 1.3.2. Szyfrowanie i deszyfrowanie
- 1.4. Wyznaczanie liczby pi
- 1.5. Wieże Hanoi
- 1.5.1. Modelowanie wież
- 1.5.2. Rozwiązywanie problemu wież Hanoi
- 1.6. Praktyczne zastosowania
- 1.7. Ćwiczenia
- 1.1. CiÄ…g Fibonacciego
- 2. Problemy wyszukiwania
- 2.1. Przeszukiwanie DNA
- 2.1.1. Przechowywanie DNA
- 2.1.2. Przeszukiwanie liniowe
- 2.1.3. Wyszukiwanie binarne
- 2.1.4. Uogólniony przykład
- 2.2. Rozwiązywanie labiryntów
- 2.2.1. Generowanie losowego labiryntu
- 2.2.2. Detale labiryntu
- 2.2.3. Przeszukiwanie w głąb
- 2.2.4. Przeszukiwanie wszerz
- 2.2.5. Algorytm A*
- 2.3. Misjonarze i kanibale
- 2.3.1. Modelowanie problemu
- 2.3.2. RozwiÄ…zywanie problemu
- 2.4. Praktyczne zastosowania
- 2.5. Ćwiczenia
- 2.1. Przeszukiwanie DNA
- 3. Problemy spełniania ograniczeń
- 3.1. Budowanie systemu do rozwiązywania problemów spełniania ograniczeń
- 3.2. Problem kolorowania mapy Australii
- 3.3. Problem ośmiu hetmanów
- 3.4. Wykreślanki
- 3.5. SEND + MORE = MONEY
- 3.6. Układ chipów na płytce
- 3.7. Praktyczne zastosowania
- 3.8. Ćwiczenia
- 4. Problemy grafowe
- 4.1. Mapa jako graf
- 4.2. Budowanie szkieletu grafu
- 4.2.1. Stosowanie klas Edge i Graph
- 4.3. Znajdowanie najkrótszej drogi
- 4.3.1. Powrót do przeszukiwania wszerz (BFS)
- 4.4. Minimalizowanie kosztu budowania sieci
- 4.4.1. Stosowanie wag
- 4.4.2. Znajdowanie minimalnego drzewa rozpinajÄ…cego
- 4.5. Znajdowanie najkrótszych dróg w grafie z wagami
- 4.5.1. Algorytm Dijkstry
- 4.6. Praktyczne zastosowania
- 4.7. Ćwiczenia
- 5. Algorytmy genetyczne
- 5.1. Podstawy biologiczne
- 5.2. Generyczny algorytm genetyczny
- 5.3. Naiwny test
- 5.4. SEND + MORE = MONEY ciÄ…g dalszy
- 5.5. Optymalizowanie kompresji list
- 5.6. Wyzwania zwiÄ…zane z algorytmami genetycznymi
- 5.7. Praktyczne zastosowania
- 5.8. Ćwiczenia
- 6. Algorytm klasteryzacji
- 6.1. Przygotowania
- 6.2. Algorytm klasteryzacji metodą k-średnich
- 6.3. Klasteryzacja gubernatorów według wieku i długości geograficznej
- 6.4. Klasteryzacja albumów Michaela Jacksona według długości
- 6.5. Problemy i rozszerzenia algorytmu klasteryzacji metodą k-średnich
- 6.6. Praktyczne zastosowania
- 6.7. Ćwiczenia
- 7. Dość proste sieci neuronowe
- 7.1. Podłoże biologiczne?
- 7.2. Sztuczne sieci neuronowe
- 7.2.1. Neurony
- 7.2.2. Warstwy
- 7.2.3. Propagacja wsteczna
- 7.2.4. Pełen obraz
- 7.3. Przygotowania
- 7.3.1. Iloczyn skalarny
- 7.3.2. Funkcja aktywacji
- 7.4. Budowanie sieci
- 7.4.1. Implementowanie neuronów
- 7.4.2. Implementowanie warstw
- 7.4.3. Implementowanie sieci
- 7.5. Problemy klasyfikacji
- 7.5.1. Normalizowanie danych
- 7.5.2. Klasyczny zbiór danych iris
- 7.5.3. Klasyfikowanie wina
- 7.6. Przyspieszanie sieci neuronowych
- 7.7. Problemy i rozszerzenia sieci neuronowych
- 7.8. Praktyczne zastosowania
- 7.9. Ćwiczenia
- 8. Przeszukiwanie z przeciwnikiem
- 8.1. Podstawowe elementy gry planszowej
- 8.2. Kółko i krzyżyk
- 8.2.1. Zarządzanie stanem gry kółko i krzyżyk
- 8.2.2. Minimax
- 8.2.3. Testowanie funkcji minimax na grze kółko i krzyżyk
- 8.2.4. Rozwijanie sztucznej inteligencji w grze kółko i krzyżyk
- 8.3. Connect 4
- 8.3.1. Mechanizm gry Connect 4
- 8.3.2. Sztuczna inteligencja w grze Connect 4
- 8.3.3. Poprawianie algorytmu minimax przez redukcjÄ™ alfa-beta
- 8.4. Inne ulepszenia algorytmu minimax
- 8.5. Praktyczne zastosowania
- 8.6. Ćwiczenia
- 9. Inne problemy
- 9.1. Problem plecakowy
- 9.2. Problem komiwojażera
- 9.2.1. Naiwne podejście
- 9.2.2. Możliwości ulepszenia projektu
- 9.3. Mnemotechniki dla numerów telefonów
- 9.4. Praktyczne zastosowania
- 9.5. Ćwiczenia
- dodatek A Glosariusz
- dodatek B Dodatkowe materiały
- B.1. Python
- B.2. Algorytmy i struktury danych
- B.3. Sztuczna inteligencja
- B.4. Programowanie funkcyjne
- B.5. Projekty open source pomocne w uczeniu maszynowym
- dodatek C Krótkie wprowadzenie do adnotacji typów
- C.1. Czym są adnotacje typów?
- C.2. Jak wyglądają adnotacje typów?
- C.3. Do czego przydają się adnotacje typów?
- C.4. Jakie są wady adnotacji typów?
- C.5. Zdobywanie dodatkowych informacji
- przypisy