Algorytmy_dla_bystrzakow_algoby.pdf

(2441 KB) Pobierz
Tytuł oryginału: Algorithms For Dummies
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-6076-1
Original English language edition Copyright © 2017 by John Wiley & Sons, Inc.,
Hoboken, New Jersey.
All rights reserved including the right of reproduction in whole in part in any form.
This translation published by arrangement with John Wiley & Sons, Inc.
Oryginalne angielskie wydanie © 2017 by John Wiley & Sons, Inc., Hoboken, New Jersey.
Wszelkie prawa, włączając prawo do reprodukcji całości lub części w jakiejkolwiek formie, zarezerwowane.
Tłumaczenie opublikowane na mocy porozumienia z John Wiley & Sons, Inc.
Translation copyright © 2019 by Helion S.A.
Wiley, the Wiley Publishing logo, For Dummies, Dla Bystrzaków, the Dummies Man logo, Dummies.com,
Making Everything Easier and related trade dress are trademarks or registered trademarks of John Wiley
and Sons, Inc. and/or its affiliates in the United States and/or other countries. Used under license. All other
trademarks are the property of their respective owners.
Wiley, the Wiley Publishing logo, For Dummies, Dla Bystrzaków, the Dummies Man logo, Dummies.com,
Making Everything Easier i związana z tym szata graficzna są markami handlowymi John Wiley and Sons,
Inc. i/lub firm stowarzyszonych w Stanach Zjednoczonych i/lub innych krajach. Wykorzystywane na
podstawie licencji. Wszystkie pozostałe znaki handlowe są własnością ich właścicieli.
Media and software compilation copyright © 2017 by John Wiley & Sons, Inc. All rights reserved.
Autor oraz HELION SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz HELION SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://dlabystrzakow.pl/user/opinie/algoby
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/algoby.zip
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
dlabystrzakow@dlabystrzakow.pl
WWW:
http://dlabystrzakow.pl
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
O autorach .......................................................................................15
Podzi kowania od autorów ...........................................................17
Wprowadzenie ................................................................................19
CZ
I: ZACZYNAMY ................................................................. 25
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 1:
Spis tre ci
Kup książkę
5
Poleć książkę
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
6
Kup książkę
Algorytmy dla bystrzaków
Poleć książkę
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
Spis tre ci
Kup książkę
7
Poleć książkę
Zgłoś jeśli naruszono regulamin