Алгоритмы для чайников Джон Пол Мюллер

Товар

1 927  ₽
Алгоритмы для чайников Джон Пол Мюллер
  • 0 раз купили
  • 4.88  оценка
  • 2 осталось
  • 43 отзыва

Доставка

  • Почта России

    1568 ₽

  • Курьерская доставка EMS

    2087 ₽

Характеристики

Артикул
15354481243
Состояние
Новый
Autor
John Paul Mueller
Seria
Dla Bystrzaków
Tytuł
Algorytmy dla bystrzaków
Nośnik
książka papierowa
Okładka
miękka
Rok wydania
2019
Wydawnictwo
Septem
Liczba stron
424
Numer wydania
1
Język publikacji
polski
Wysokość produktu
23 cm
Szerokość produktu
17 cm

Описание

Algorytmy dla bystrzaków John Paul Mueller

Rok wydania: 2020

Oprawa:broszurowa

Ilość stron: 424

Format: 16,9 x23,5 cm

Algorytmy dla bystrzaków

John Paul Mueller, Luca Massaron

Zestaw algorytmy z ich zastosowaniami

Zdobądź umiejętności posługiwania się algorytmami

Naucz się wykorzystywać Pythona do testowania algorytmów

Myśl za pomocą algorytmów

Ten jasny i przystępny przewodnik pokazuje, w jaki sposób algorytmy wpływają na nasze codzienne życie - od interakcji online po osobistą komunikację. Są również niezwykle ważne, jeśli chodzi o podejmowanie różnego rodzaju decyzji. Jeśli chcesz wiedzieć, jak korzystać z procedur rozwiązywania problemów w prawdziwym świecie, książka Algorytmy dla bystrzaków zagwarantuje Ci doskonałe wprowadzenie do tej fascynującej, wszechobecnej dziedziny.

Operacje na danych

Projektowanie algorytmów

Podstawy teorii grafów

Zarządzanie danymi o dużej objętości

Upraszczanie złożonych algorytmów

O autorach

John Paul Mueller jest wolnym strzelcem i redaktorem technicznym. Napisał 104 książki i ponad 600 artykułów o różnorodnej tematyce — od sieci po sztuczną inteligencję, od zarządzania bazami danych po inne obszary programowania. Jest konsultantem, przygotowuje różnego rodzaju egzaminy certyfikacyjne. Ma własną witrynę internetową pod adresem http://johnmuellerbooks.com

Luca Massaron specjalizuje się w statystycznych analizach wieloczynnikowych, uczeniu maszynowym, statystyce, eksploracji danych i algorytmice. Pasjonuje się potencjałem, jaki drzemie w nauce o danych.

Spis treści

O autorach 15

Podziękowania od autorów 17

Wprowadzenie 19

CZĘŚĆ I: ZACZYNAMY 25

Rozdział 1: Wprowadzenie do algorytmów 27

  • Co to jest algorytm? 28

    Zastosowania algorytmów 30

    Algorytmy są wszędzie 32

  • Stosowanie komputerów do rozwiązywania problemów 33

    Wykorzystanie nowoczesnych procesorów i procesorów graficznych 34

    Wykorzystanie układów specjalnych 35

    Wykorzystanie sieci 36

    Wykorzystywanie dostępnych danych 37

  • Odróżnianie problemów od rozwiązań 38

    Poprawność a skuteczność 38

    Nie ma nic za darmo! 39

    Dostosowanie strategii do problemu 39

    Zrozumiały opis algorytmów 39

    Stawianie czoła trudnym problemom 40

  • Strukturyzacja danych w celu uzyskania rozwiązania 40

    Zrozumienie punktu widzenia komputera 41

    Układ danych robi różnicę 41

Rozdział 2: Projekt algorytmu 43

  • Rozpoczęcie rozwiązywania problemu 44

    Modelowanie rzeczywistych problemów 45

    Znajdowanie rozwiązań i kontrprzykładów 47

    Na ramionach olbrzymów 48

  • Dziel i zwyciężaj 48

    Unikanie rozwiązań siłowych 49

    Zacznij od uproszczenia 50

    Rozwiązanie składowych problemu zwykle jest łatwiejsze niż rozwiązanie całego problemu 50

  • Zachłanność może być dobra 51

    Stosowanie zachłannego wnioskowania 51

    Osiąganie dobrego rozwiązania 52

  • Koszty obliczeniowe i korzystanie z heurystyk 53

    Reprezentowanie problemu jako przestrzeni 54

    Wykonywanie losowych ruchów i liczenie na szczęście 54

    Używanie heurystyki i funkcji kosztu 55

  • Ocena algorytmów 56

    Symulacje z wykorzystaniem maszyn abstrakcyjnych 57

    Więcej abstrakcji 58

    Wykorzystanie funkcji 59

Rozdział 3: Wykorzystanie Pythona do pracy z algorytmami 63

  • Zalety Pythona 65

    Dlaczego w tej książce korzystamy z Pythona? 65

    Korzystanie z MATLAB-a 67

    Inne środowiska testowania algorytmów 68

  • Dystrybucje Pythona 68

    Pobieranie środowiska Anaconda Analytics 69

    Enthought Canopy Express 70

    Środowisko pythonxy 70

    WinPython 71

  • Instalowanie Pythona w systemie Linux 71
  • Instalowanie Pythona w systemie MacOS 72
  • Instalowanie Pythona w systemie Windows 74
  • Pobieranie zestawów danych i przykładowego kodu 77

    Korzystanie ze środowiska Jupyter Notebook 77

    Definiowanie repozytorium kodu 79

    Zestawy danych wykorzystywane w tej książce 84

Rozdział 4: Wprowadzenie do Pythona jako narzędzia do programowania algorytmów 87

  • Działania na liczbach i operacje logiczne 89

    Przypisywanie wartości do zmiennych 90

    Wykonywanie działań arytmetycznych 91

    Porównywanie danych za pomocą wyrażeń boolowskich 92

  • Tworzenie ciągów znaków i posługiwanie się nimi 95
  • Działania na datach 97
  • Tworzenie i stosowanie funkcji 98

    Tworzenie funkcji wielokrotnego użytku 98

    Wywoływanie funkcji 99

  • Stosowanie instrukcji warunkowych i pętli 102

    Podejmowanie decyzji za pomocą instrukcji if 102

    Wybór pomiędzy wieloma opcjami z wykorzystaniem decyzji zagnieżdżonych 103

    Wykonywanie powtarzających się zadań za pomocą pętli for 104

    Korzystanie z instrukcji while 105

  • Przechowywanie danych z wykorzystaniem zbiorów, list i krotek 106

    Tworzenie zbiorów 106

    Tworzenie list 107

    Tworzenie i używanie krotek 108

  • Definiowanie przydatnych iteratorów 110
  • Indeksowanie danych z wykorzystaniem słowników 111

Rozdział 5: Wykonywanie podstawowych operacji na danych za pomocą Pythona 113

  • Wykonywanie obliczeń za pomocą wektorów i macierzy 114

    Operacje na wartościach skalarnych i na wektorach 115

    Mnożenie wektorów 117

    Najlepiej rozpocząć od utworzenia macierzy 118

    Mnożenie macierzy 119

    Definiowanie zaawansowanych operacji na macierzach 120

  • Właściwe tworzenie kombinacji 122

    Rozróżnianie permutacji 122

    Tasowanie kombinacji 123

    Obsługa powtórzeń 124

  • Uzyskiwanie pożądanych wyników za pomocą rekurencji 125

    Co to jest rekurencja? 125

    Eliminowanie rekurencji wywołań ogonowych 128

  • Szybsze wykonywanie zadań 129

    Dziel i zwyciężaj 129

    Rozróżnianie możliwych rozwiązań 132

CZĘŚĆ II: ZNACZENIE SORTOWANIA I WYSZUKIWANIA 135

Rozdział 6: Strukturyzowanie danych 137

  • Niezbędność struktury 138

    Łatwiejsze oglądanie treści 138

    Dopasowywanie danych z różnych źródeł 139

    Korygowanie danych 140

  • Układanie danych w stos 143

    Porządkowanie z wykorzystaniem stosów 143

    Korzystanie z kolejek 145

    Wyszukiwanie danych z wykorzystaniem słowników 146

  • Drzewa 147

    Podstawowe wiadomości o drzewach 147

    Budowanie drzewa 148

  • Reprezentowanie relacji za pomocą grafu 150

    Więcej niż drzewa 150

    Budowanie grafów 151

Rozdział 7: Organizowanie i wyszukiwanie danych 155

  • Sortowanie z wykorzystaniem algorytmów MergeSort i QuickSort 156

    Dlaczego ważne jest sortowanie danych? 156

    Naiwne sortowanie danych 158

    Lepsze techniki sortowania 160

  • Korzystanie z drzew wyszukiwania i stert 164

    Potrzeba skutecznego wyszukiwania 165

    Budowanie drzewa wyszukiwania binarnego 167

    Wyspecjalizowane wyszukiwania za pomocą sterty binarnej 168

  • Korzystanie z tablic asocjacyjnych 169

    Pojemniki na dane 169

    Zapobieganie kolizjom 171

    Tworzenie własnej funkcji haszującej 173

CZĘŚĆ III: ŚWIAT GRAFÓW 175

Rozdział 8: Podstawowe informacje o grafach 177

  • Znaczenie sieci 178

    Istota grafu 178

    Grafy są wszędzie 180

    Społecznościowa strona grafów 181

    Podgrafy 182

  • Definiowanie sposobu rysowania grafu 183

    Rozróżnianie kluczowych atrybutów 183

    Rysowanie grafu 185

  • Pomiar funkcjonalności grafu 186

    Zliczanie krawędzi i wierzchołków 186

    Obliczanie centralności 188

  • Liczbowa reprezentacja grafu 190

    Dodawanie grafu do macierzy 191

    Używanie reprezentacji rzadkich 192

    Korzystanie z list do przechowywania grafu 192

Rozdział 9: Połącz kropki 195

  • Efektywne przechodzenie przez graf 196

    Tworzenie grafu 197

    Przeszukiwanie najpierw wszerz 198

    Przeszukiwanie najpierw w głąb 199

    Określanie, której aplikacji użyć 202

  • Sortowanie elementów grafu 202

    Skierowane grafy acykliczne 203

    Sortowanie topologiczne 204

  • Redukcja do minimalnego drzewa rozpinającego 205

    Wybór odpowiednich algorytmów 208

    Kolejki z priorytetami 209

    Wykorzystanie algorytmu Prima 210

    Testowanie algorytmu Kruskala 211

    Który algorytm działa najlepiej? 213

  • Znalezienie najkrótszej trasy 214

    Co to znaczy znaleźć najkrótszą ścieżkę? 214

    Wyjaśnienie algorytmu Dijkstry 216

Rozdział 10: Odkrywanie tajemnic grafów 219

  • Sieci społecznościowe jako grafy 220

    Klasteryzacja sieci 220

    Odkrywanie społeczności 223

  • Poruszanie się po grafie 225

    Zliczanie stopni separacji 225

    Losowe poruszanie się po grafie 227

Rozdział 11: Pobieranie właściwej strony internetowej 229

  • Odkrywanie świata za pomocą wyszukiwarki 230

    Wyszukiwanie danych w internecie 230

    Jak znaleźć właściwe dane? 230

  • Czym jest algorytm PageRank? 232

    Wnioskowanie w algorytmie PageRank 232

    Szczegóły działania algorytmu PageRank 234

  • Implementacja algorytmu PageRank 234

    Implementacja skryptu Pythona 235

    Rozwiązywanie problemów naiwnej implementacji 238

    Nuda i teleportacja 240

    Jak działa wyszukiwarka? 242

    Inne zastosowania algorytmu PageRank 242

  • Nie tylko paradygmat PageRank 243

    Zapytania semantyczne 243

    Stosowanie technik AI do tworzenia rankingu wyników wyszukiwania 244

CZĘŚĆ IV: ZMAGANIA Z BIG DATA 245

Rozdział 12: Zarządzanie obszernymi zbiorami danych 247

  • Przekształcanie mocy obliczeniowej w dane 248

    Implikacje prawa Moore'a 249

    Dane są wszędzie 251

    Zastosowanie algorytmów w biznesie 253

  • Strumieniowy przepływ danych 255

    Analiza strumieni z wykorzystaniem odpowiednich receptur 256

    Rezerwowanie właściwych danych 257

  • Szkicowanie odpowiedzi z danych strumienia 261

    Filtrowanie elementów strumienia "na pamięć" 262

    Przykład filtra Blooma 264

    Znajdowanie liczby różnych elementów 267

    Zliczanie obiektów w strumieniu 269

Rozdział 13: Współbieżne wykonywanie operacji 271

  • Zarządzanie ogromnymi ilościami danych 272

    Paradygmat przetwarzania równoległego 272

    Dystrybucja plików i operacji 275

    Zastosowanie rozwiązania MapReduce 277

  • Algorytmy dla techniki MapReduce 280

    Konfigurowanie symulacji MapReduce 281

    Zapytanie przez mapowanie 283

Rozdział 14: Kompresja danych 287

  • Zmniejszenie rozmiaru danych 288

    Kodowanie 288

    Efekty kompresji 290

    Wybór rodzaju kompresji 291

    Dobór kodowania 293

    Kodowanie za pomocą kompresji Huffmana 295

    Zapamiętywanie sekwencji za pomocą LZW 297

CZĘŚĆ V: TRUDNE PROBLEMY 303

Rozdział 15: Algorytmy zachłanne 305

  • Kiedy lepiej jest być zachłannym? 306

    Dlaczego zachłanność może być dobra? 307

    Zarządzanie algorytmami zachłannymi 308

    Problemy NP-zupełne 310

  • Dlaczego zachłanność może być pożyteczna? 312

    Organizacja danych z wykorzystaniem pamięci podręcznej komputera 312

    Rywalizacja o zasoby 314

    Kodowanie Huffmana raz jeszcze 316

Rozdział 16: Programowanie dynamiczne 321

  • Zasady programowania dynamicznego 322

    Baza historyczna 322

    Zmiana problemów na dynamiczne 323

    Dynamiczne rzutowanie rekurencji 325

    Wykorzystanie memoizacji 327

  • Najlepsze procedury programowania dynamicznego 329

    Co jest w plecaku? 330

    Zwiedzanie miast 333

    Przybliżone wyszukiwanie ciągów znaków 338

Rozdział 17: Korzystanie z algorytmów losowych 341

  • Jak działa randomizacja? 342

    Dlaczego randomizacja jest potrzebna? 343

    Czym jest prawdopodobieństwo? 344

    Rozkłady prawdopodobieństwa 345

    Symulacja użycia metody Monte Carlo 348

  • Wykorzystanie losowości w logice algorytmu 350

    Obliczanie mediany za pomocą algorytmu Quickselect 350

    Symulacja przy użyciu algorytmu Monte Carlo 353

    Szybsze sortowanie dzięki algorytmowi Quicksort 355

Rozdział 18: Wyszukiwanie lokalne 357

  • Co to jest wyszukiwanie lokalne? 358

    Znajomość sąsiedztwa 358

  • Sztuczki stosowane w wyszukiwaniu lokalnym 361

    Problem wspinaczki z n-królowymi 362

    Symulowane wyżarzanie 364

    Unikanie powtórzeń przy użyciu przeszukiwania tabu 366

  • Rozwiązywanie warunku spełnialności układów logicznych 367

    Rozwiązywanie problemu 2-SAT z wykorzystaniem randomizacji 368

    Implementacja kodu w Pythonie 369

    Lepszy punkt wyjścia 371

Rozdział 19: Wykorzystanie programowania liniowego 375

  • Stosowanie funkcji liniowych jako narzędzia 376

    Podstawy matematyczne 377

    Upraszczanie podczas planowania 379

    Geometria w metodzie simplex 379

    Ograniczenia 381

  • Programowania liniowe w praktyce 382

    Konfigurowanie modułu PuLP 383

    Optymalizacja produkcji i przychodów 383

Rozdział 20: Heurystyka 389

  • Klasyfikacja heurystyk 390

    Cele heurystyki 390

    Od genetyki do sztucznej inteligencji 391

  • Sterowanie robotem za pomocą heurystyki 392

    Skauting w nieznanym terenie 393

    Wykorzystanie miar odległości jako heurystyki 394

  • Algorytmy wyszukiwania ścieżki 395

    Tworzenie labiryntu 396

    Szybkie wyszukiwanie najlepszej trasy 398

    Poruszanie się heurystyczne z wykorzystaniem algorytmu A* 402

CZĘŚĆ VI: DEKALOGI 407

Rozdział 21: Dziesięć algorytmów, które zmieniły świat 409

  • Korzystanie z procedur sortowania 410
  • Poszukiwanie informacji z wykorzystaniem procedur wyszukiwania 411
  • Zmienianie sytuacji za pomocą liczb losowych 411
  • Kompresja danych 412
  • Zachowanie poufności danych 412
  • Zmiana dziedziny danych 413
  • Analiza powiązań w danych 413
  • Wykrywanie wzorców w danych 414
  • Automatyzacja i automatyczne odpowiedzi 415
  • Tworzenie unikatowych identyfikatorów 415

Rozdział 22: Dziesięć problemów algorytmicznych do rozwiązania 417

  • Obsługa wyszukiwania tekstu 418
  • Rozróżnianie słów 418
  • Ustalenie, czy aplikacja się zakończy 419
  • Tworzenie i stosowanie funkcji jednokierunkowych 419
  • Mnożenie bardzo dużych liczb 420
  • Równy podział zasobów 420
  • Skrócenie czasu obliczania odległości edycji 421
  • Szybkie rozwiązywanie problemów 421
  • Gra w grę parzystości 422
  • Zrozumienie problemów przestrzennych 422

Гарантии

  • Гарантии

    Мы работаем по договору оферты и предоставляем все необходимые документы.

  • Лёгкий возврат

    Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.

  • Безопасная оплата

    Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.

Отзывы о товаре

Рейтинг товара 4.88 / 5

43 отзыва

Russian English Polish