O glonach i muzyce, czyli dlaczego Euklides był pierwszym informatykiem

Może będzie to zaskakujące, ale pretekstem do pierwszej części tytułu jest słowo algorytm (alga to inne określenie glonu). Nie są mi znane inne powiązania między glonami i muzyką, choć jak wkrótce się przekonasz sama algorytmika ma wiele z oboma tematami wspólnego.

Ale co to jest w ogóle algorytm? W prostych słowach to uporządkowanie pewnych czynności tak, aby ich wykonanie dało określony efekt. W trakcie dnia, nieświadomie wykonujemy wiele algorytmów. Jak na przykład wygląda algorytm parzenia herbaty?

  1. Nalanie wody do czajnika
  2. Włączenie czajnika
  3. Wyciągnięcie kubka z szafki
  4. Wrzucenie saszetki do kubka
  5. Zalanie wodą

 

Dlaczego algorytmy są tak ważne?

W czasie przygody z programowaniem każdy programista spotka się z tymi problemami:

  1. Efektywność programu – może okazać się, że nasz program wykonuje się zbyt wolno, albo zużywa za dużo pamięci. W takich przypadkach algorytmy mogą pomóc zoptymalizować jego działanie.
  2. Problem będzie zbyt trudny do bezpośredniego rozwiązania – gdy nasz umysł okaże się za słaby, aby wymyślić algorytm, który bezpośrednio będzie można przepisać na kod. Wtedy z pomocą przychodzi nam cała skarbnica algorytmów i technik programowania, której możemy używać jak “bloków” dodawanych do naszego programu.

 

Przykłady użycia algorytmów

Algorytmy w informatyce są praktycznie wszędzie. Na pewno grałeś kiedyś w jakąś grę, w której można było nakazać iść postaci w określone miejsce na mapie (np. AoE). Myślałeś nad tym w jaki sposób znajduje ona drogę, gdy na trasie pojawią się góry, woda, albo inny element utrudniający ruch? Problem ten mógł być rozwiązany za pomocą algorytmu nazywanego A*.

 

 

 

 

 

 

Zastanawiałeś się czym tak właściwie jest kompresja danych? Dane podlegają kompresji, tak aby zmniejszyć ich objętość, do czego używa złożonych algorytmów jak na przykład algorytm Kodowania Huffmana.

 

 

 

 

Zauważyłeś, że wchodząc na google.com przy pasku adresu pojawia się zielona kłódka? Oznacza to, że połączenie z tą stroną jest szyfrowane – szyfrowane za pomocą bardzo zaawansowanego algorytmu. Jest to na tyle obszerny temat, że zajmuje się nim odrębna dziedzina nauki – kryptografia.

 

Algorytm Euklidesa

Na koniec wróćmy do tytułowego bohatera Euklidesa. Miał on istotny wpływ na rozwój właśnie kryptografii. Algorytm Euklidesa jest podstawą nauki szyfrowania. Ale jak on działa?

Dla zadanych dwóch liczb, wylicza on ich największy wspólny dzielnik, czyli np. dla 21 i 15 zwraca wartość 3. Poniżej jest on zapisany w pseudokodzie. Głębszą analizę algorytmu pozostawiam czytelnikowi.

 

NWD(liczba całkowita a, liczba całkowita b)
      dopóki b != 0
              c := reszta z dzielenia a przez b
              a := b
              b := c
      zwróć a

 

Jan S

Jan Sierpina

Programista back-end, zainteresowany informatyką jako nauką - algorytmiką, AI. Gracz szachów i bilarda.

Like
Like Love Haha Wow Sad Angry

5 Replies to “O glonach i muzyce, czyli dlaczego Euklides był pierwszym informatykiem”

  1. Fajny wstęp do algorytmów! 🙂 Nadal szukam powiązania między glonami, a rytmem… Może zamiast mówić co ma piernik do wiatraka, powinniśmy mówić “Co ma glon do rytmiki”?
    W każdym razie dzięki za artykuł i czekam na jakieś zastosowania praktyczne i inne przykłady algorytmów 😉

  2. Może ktoś inny widzi powiązanie między glonami, a muzyką? To może być ważne dla ludzkości…

  3. Ciekawy artykuł, czekam na więcej!

  4. Takie artykuły powinny być czytane na lekcjach informatyki

  5. Bardzo ciekawy artykuł! Ciekawe, że Euklides stworzył algorytm, który stał się podstawą nauki szyfrowania

Dodaj komentarz