"Matematyczne przygody z Pythonem"
Identyfikator Librowy: 212358
Spis treści
Podziękowania 16
Wprowadzenie 18
Problemy ze szkolną matematyką 19
O tej książce 21
Co można znaleźć w tej książce? 22
Kto powinien skorzystać z tej książki 22
Pobieranie i instalowanie Pythona 23
Instalowanie oprogramowania Processing 24
Uruchamianie IDLE 24
CZĘŚĆ I: ZAPRZĘGAMY PYTHONA DO PRACY 26
1. Rysowanie wielokątów przy użyciu modułu turtle 28
Moduł turtle Pythona 29
Importowanie modułu turtle 29
Ruch żółwiem 30
Zmiana kierunku 31
Powtarzanie kodu za pomocą pętli 32
Wykorzystywanie pętli for 32
Tworzenie skrótów za pomocą funkcji 34
Wykorzystywanie pętli for do rysowania kwadratu 34
Wykorzystywanie zmiennych do rysowania kształtów 35
Wykorzystywanie zmiennych w funkcjach 36
Błędy zmiennych 37
Trójkąt równoboczny 38
Pisanie funkcji triangle() 38
Zmienianie zmiennych 39
Podsumowanie 41
2. Zamienianie żmudnej arytmetyki w zabawę przy użyciu list i pętli 44
Podstawowe operatory 44
Działania na zmiennych 45
Pamiętaj o kolejności wykonywania działań! 46
Wykorzystywanie operatorów do pisania funkcji average() 46
Typy danych w Pythonie 47
Liczby całkowite i zmiennoprzecinkowe 47
Wykorzystywanie nawiasów w połączeniu z operatorami 47
Łańcuchy 48
Sprawdzanie typów danych 49
Wartości logiczne 49
Wykorzystywanie list do przechowywania wartości 50
Dodawanie elementów do list 51
Działania na listach 51
Stosowanie list w pętlach 52
Usuwanie elementów z listy 52
Uzyskiwanie dostępu do poszczególnych elementów przy użyciu indeksów 53
Indeksy rozpoczynają się od zera 54
Uzyskiwanie dostępu do indeksu i wartości przy użyciu funkcji enumerate() 54
Uzyskiwanie dostępu do zakresu elementów listy 54
Znajdowanie indeksu elementu 55
Sumowanie 56
Łańcuchy również mają indeksy 56
Tworzenie zmiennej sumy bieżącej 57
Znajdowanie średniej dla listy liczb 58
Pisanie funkcji mysum() 58
Podsumowanie 59
3. Zgadywanie i sprawdzanie przy użyciu instrukcji warunkowych 62
Operatory porównań 63
Podejmowanie decyzji przy użyciu instrukcji if oraz else 63
Wykorzystywanie instrukcji warunkowych do znajdowania dzielników 65
Pisanie programu factors.py 65
Wędrujący żółw 66
Tworzenie gry w zgadywanie liczb 68
Tworzenie generatora liczb losowych 69
Zbieranie danych 69
Wykorzystywanie instrukcji warunkowych do sprawdzania prób odgadnięcia 70
Zamiana danych wejściowych na liczby całkowite 70
Wykorzystywanie pętli do ponawiania prób odgadnięcia 71
Wskazówki dotyczące zgadywania 72
Znajdowanie pierwiastka kwadratowego 73
Stosowanie logiki gry w zgadywanie liczb 73
Pisanie funkcji squareroot() 74
Podsumowanie 75
CZĘŚĆ II: WJEŻDŻAMY NA TERYTORIUM MATEMATYKI 76
4. Przekształcanie i przechowywanie liczb zgodnie z zasadami algebry 78
Rozwiązywanie równań pierwszego stopnia 79
Znajdowanie wzoru dla równań pierwszego stopnia 80
Pisanie funkcji equation() 81
Zastosowanie print() zamiast return 82
Rozwiązywanie równań wyższego stopnia 83
Rozwiązywanie równań kwadratowych przy użyciu funkcji quad() 84
Rozwiązywanie równań sześciennych przy użyciu funkcji plug() 85
Graficzne rozwiązywanie równań 86
Rozpoczęcie pracy z Processingiem 86
Tworzenie własnego narzędzia graficznego 88
Rysowanie wykresu równania 94
Pisanie funkcji guess() 98
Znajdowanie pierwiastków przy użyciu metody zgadywania i sprawdzania 98
Podsumowanie 100
5. Przekształcanie figur przy użyciu geometrii 102
Rysowanie okręgu 103
Określanie położenia przy użyciu współrzędnych 104
Funkcje przekształceń 105
Translacje obiektów z wykorzystaniem funkcji translate() 105
Obracanie obiektów z wykorzystaniem funkcji rotate() 108
Rysowanie okręgu okręgów 109
Rysowanie okręgu kwadratów 110
Animowanie obiektów 111
Tworzenie zmiennej t 111
Obracanie poszczególnych kwadratów 112
Zapisywanie orientacji przy użyciu funkcji pushmatrix() i popmatrix() 113
Tworzenie interaktywnej siatki tęczy 114
Obrót wokół środka 114
Rysowanie siatki obiektów 115
Dodawanie kolorów tęczy do obiektów 116
Rysowanie złożonych wzorów przy użyciu trójkątów 118
Trójkąt 30-60-90 119
Rysowanie trójkąta równobocznego 121
Rysowanie wielu obracających się trójkątów 123
Przesunięcia fazowe obrotu 124
Kończenie projektu 125
Podsumowanie 127
6. Tworzenie oscylacji przy użyciu trygonometrii 128
Wykorzystywanie trygonometrii do obrotów i oscylacji 130
Pisanie funkcji do rysowania wielokątów 131
Rysowanie sześciokąta za pomocą pętli 132
Rysowanie trójkąta równobocznego 134
Tworzenie fal sinusoidalnych 135
Pozostawianie śladu 138
Korzystanie z wbudowanej funkcji Pythona enumerate() 139
Tworzenie programu spirografu 141
Rysowanie mniejszego okręgu 141
Wprawianie mniejszego okręgu w ruch 142
Tworzenie harmonografów 145
Pisanie programu harmonografu 146
Natychmiastowe wypełnianie listy 148
Co dwa wahadła to nie jedno 149
Podsumowanie 151
7. Liczby zespolone 152
Układ współrzędnych płaszczyzny zespolonej 153
Dodawanie liczb zespolonych 154
Mnożenie liczby zespolonej przez i 155
Mnożenie dwóch liczb zespolonych 156
Pisanie funkcji magnitude() 157
Tworzenie zbioru Mandelbrota 157
Pisanie funkcji mandelbrot() 160
Dodawanie koloru do zbioru Mandelbrota 164
Tworzenie zbioru Julii 166
Pisanie funkcji julia() 166
Podsumowanie 168
8. Wykorzystywanie macierzy do grafiki komputerowej i układów równań 170
Co to jest macierz? 171
Dodawanie macierzy 171
Mnożenie macierzy 172
Kolejność ma znaczenie w mnożeniu macierzy 176
Rysowanie kształtów 2D 176
Przekształcanie macierzy 179
Transpozycja macierzy 181
Obracanie macierzy w czasie rzeczywistym 185
Tworzenie kształtów 3D 186
Tworzenie macierzy obrotu 187
Rozwiązywanie układów równań przy użyciu macierzy 191
Metoda eliminacja Gaussa 192
Pisanie funkcji gauss() 193
Podsumowanie 197
CZĘŚĆ III: PRZECIERAMY SZLAKI 198
9. Budowanie obiektów przy użyciu klas 200
Program z odbijającymi się piłkami 202
Wprawianie piłki w ruch 203
Odbijanie piłki od ścian 204
Tworzenie wielu piłek bez użycia klas 206
Tworzenie obiektów przy użyciu klas 207
Program z pasącymi się owcami 211
Pisanie klasy owcy 211
Programowanie ruchu owcy 212
Tworzenie trawy przy użyciu klas 214
Tworzenie właściwości energii 214
Zmiana koloru trawy na brązowy po jej zjedzeniu 217
Nadawanie każdej owcy losowego koloru 219
Programowanie rozmnażania się owiec 221
Odrastanie trawy 222
Zapewnianie przewagi ewolucyjnej 223
Podsumowanie 225
10. Tworzenie fraktali przy użyciu rekurencji 226
Długość wybrzeża 227
Co to jest rekurencja? 228
Pisanie funkcji factorial() 228
Budowanie drzewa fraktalnego 229
Płatek Kocha 234
Pisanie funkcji segment() 235
Trójkąt Sierpińskiego 239
Fraktal bazujący na kwadracie 241
Krzywa smocza 245
Podsumowanie 249
11. Automaty komórkowe 250
Tworzenie automatu komórkowego 251
Pisanie klasy Cell 253
Zmienianie rozmiaru wszystkich komórek 255
Programowanie rozwoju automatu komórkowego 256
Umieszczanie komórek w macierzy 257
Tworzenie listy komórek 258
Listy Pythona są dziwne 259
Notacja indeksów listy 260
Zasady gry w życie 263
Automatyczny rozwój automatu komórkowego 263
Elementarny automat komórkowy 266
Podsumowanie 271
12. Rozwiązywanie problemów przy użyciu algorytmów genetycznych 272
Wykorzystywanie algorytmów genetycznych do zgadywania fraz 273
Pisanie funkcji makelist() 273
Testowanie funkcji makelist() 274
Pisanie funkcji mutate() 275
Pisanie funkcji score() 275
Generowanie liczby losowej 276
Rozwiązywanie problemu komiwojażera 279
Wykorzystywanie algorytmów genetycznych 279
Pisanie metody calclength() 285
Testowanie metody calclength() 286
Losowe trasy 287
Modyfikowanie dwóch numerów z listy 290
Stosowanie idei mutacji z programu do odgadywania fraz 290
Krzyżowanie w celu ulepszenia tras 294
Podsumowanie 297
Indeks 298