Klasyczne problemy informatyki w Pythonie

1 opinia

Format:

epub, mobi

RODZAJ DOSTĘPU

51,80  74,00

Format: epub, mobi

Cena początkowa: 74,00 zł (-30%)

Najniższa cena z 30 dni: 51,80 zł  


51,80

w tym VAT

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.


Rok wydania2020
Liczba stron250
KategoriaProgramowanie
WydawcaWydawnictwo Naukowe PWN
TłumaczenieNatalia Chounlamany-Turalska
ISBN-13978-83-01-20993-3
Numer wydania1
Język publikacjipolski
Informacja o sprzedawcyePWN sp. z o.o.

Ciekawe propozycje

Spis treści

  podziękowania xv
  o autorze xvii
  o ilustracji na okładce xviii
  wprowadzenie xix
  1. Małe problemy    1
    1.1. Ciąg Fibonacciego    1
      Pierwsza próba rekurencyjna    1
      Wykorzystywanie przypadków podstawowych    3
      Memoizacja na ratunek    4
      Memoizacja automatyczna    5
      Uproszczony Fibonacci    6
      Generowanie liczb Fibonacciego za pomocą generatora    7
    1.2. Trywialna kompresja    7
    1.3. Szyfr nie do złamania    12
      Przygotowywanie danych    12
      Szyfrowanie i deszyfrowanie    13
    1.4. Wyznaczanie liczby pi    15
    1.5. Wieże Hanoi    16
      Modelowanie wież    17
      Rozwiązywanie problemu wież Hanoi    18
    1.6. Praktyczne zastosowania    19
    1.7. Ćwiczenia    20
  2. Problemy wyszukiwania    21
    2.1. Przeszukiwanie DNA    21
      Przechowywanie DNA    21
      Przeszukiwanie liniowe    23
      Wyszukiwanie binarne    24
      Uogólniony przykład    26
    2.2. Rozwiązywanie labiryntów    28
      Generowanie losowego labiryntu    29
      Detale labiryntu    30
      Przeszukiwanie w głąb    31
      Przeszukiwanie wszerz    35
      Algorytm A*    39
    2.3. Misjonarze i kanibale    44
      Modelowanie problemu    44
      Rozwiązywanie problemu    47
    2.4. Praktyczne zastosowania    48
    2.5. Ćwiczenia    49
  3. Problemy spełniania ograniczeń    51
    3.1. Budowanie systemu do rozwiązywania problemów spełniania ograniczeń    52
    3.2. Problem kolorowania mapy Australii    56
    3.3. Problem ośmiu hetmanów    59
    3.4. Wykreślanki    61
    3.5. SEND + MORE = MONEY    64
    3.6. Układ chipów na płytce    66
    3.7. Praktyczne zastosowania    66
    3.8. Ćwiczenia    67
  4. Problemy grafowe 69
    4.1. Mapa jako graf    69
    4.2. Budowanie szkieletu grafu    72
      Stosowanie klas Edge i Graph    76
    4.3. Znajdowanie najkrótszej drogi    77
      Powrót do przeszukiwania wszerz (BFS)    77
    4.4. Minimalizowanie kosztu budowania sieci    79
      Stosowanie wag    79
      Znajdowanie minimalnego drzewa rozpinającego    83
    4.5. Znajdowanie najkrótszych dróg w grafie z wagami    89
      Algorytm Dijkstry    89
    4.6. Praktyczne zastosowania    94
    4.7. Ćwiczenia    95
  5. Algorytmy genetyczne    97
    5.1. Podstawy biologiczne    97
    5.2. Generyczny algorytm genetyczny    98
    5.3. Naiwny test    105
    5.4. SEND + MORE = MONEY – ciąg dalszy    107
    5.5. Optymalizowanie kompresji list    111
    5.6. Wyzwania związane z algorytmami genetycznymi    113
    5.7. Praktyczne zastosowania    114
    5.8. Ćwiczenia    115
  6. Algorytm klasteryzacji 117
    6.1. Przygotowania    118
    6.2. Algorytm klasteryzacji metodą k-średnich    120
    6.3. Klasteryzacja gubernatorów według wieku i długości geograficznej    125
    6.4. Klasteryzacja albumów Michaela Jacksona według długości    128
    6.5. Problemy i rozszerzenia algorytmu klasteryzacji metodą k-średnich    130
    6.6. Praktyczne zastosowania    131
    6.7. Ćwiczenia    132
  7. Dość proste sieci neuronowe    133
    7.1. Podłoże biologiczne?    134
    7.2. Sztuczne sieci neuronowe    135
      Neurony    135
      Warstwy    136
      Propagacja wsteczna    137
      Pełen obraz    141
    7.3. Przygotowania    141
      Iloczyn skalarny    142
      Funkcja aktywacji    142
    7.4. Budowanie sieci    142
      Implementowanie neuronów    143
      Implementowanie warstw    145
      Implementowanie sieci    146
    7.5. Problemy klasyfikacji    149
      Normalizowanie danych    149
      Klasyczny zbiór danych iris    150
      Klasyfikowanie wina    153
    7.6. Przyspieszanie sieci neuronowych    156
    7.7. Problemy i rozszerzenia sieci neuronowych    156
    7.8. Praktyczne zastosowania    158
    7.9. Ćwiczenia    159
  8. Przeszukiwanie z przeciwnikiem 161
    8.1. Podstawowe elementy gry planszowej    161
    8.2. Kółko i krzyżyk    163
      Zarządzanie stanem gry kółko i krzyżyk    163
      Minimax    166
      Testowanie funkcji minimax na grze kółko i krzyżyk    169
      Rozwijanie sztucznej inteligencji w grze kółko i krzyżyk    170
    8.3. Connect 4    171
      Mechanizm gry Connect 4    172
      Sztuczna inteligencja w grze Connect 4    176
      Poprawianie algorytmu minimax przez redukcję alfa-beta    177
    8.4. Inne ulepszenia algorytmu minimax    178
    8.5. Praktyczne zastosowania    179
    8.6. Ćwiczenia    180
  9. Inne problemy 181
    9.1. Problem plecakowy    181
    9.2. Problem komiwojażera    186
      Naiwne podejście    186
      Możliwości ulepszenia projektu    190
    9.3. Mnemotechniki dla numerów telefonów    191
    9.4. Praktyczne zastosowania    193
    9.5. Ćwiczenia    194
  dodatek A. Glosariusz    195
  dodatek B. Dodatkowe materiały    201
    B.1. Python    201
    B.2. Algorytmy i struktury danych    202
    B.3. Sztuczna inteligencja    203
    B.4. Programowanie funkcyjne    203
    B.5. Projekty open source pomocne w uczeniu maszynowym    204
  dodatek C. Krótkie wprowadzenie do adnotacji typów 205
    C.1. Czym są adnotacje typów?    205
    C.2. Jak wyglądają adnotacje typów?    206
    C.3. Do czego przydają się adnotacje typów?    207
    C.4. Jakie są wady adnotacji typów?    208
    C.5. Zdobywanie dodatkowych informacji    209
  indeks    211
RozwińZwiń