Algorytmy dla bystrzaków John Paul Mueller

Товар

2 444  ₽
Algorytmy dla bystrzaków John Paul Mueller
  • 0 раз купили
  • 4.88  оценка
  • 2 осталось
  • 43 отзыва

Доставка

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

    1290 ₽

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

    1615 ₽

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

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