Jeszcze raz o algorytmach

Metoda Newtona jest przykładem algorytmu: jest to proces mechanicznego rozwiązywania pewnej klasy zagadnień, w tym przypadku obliczania pierwiastka kwadratowego.

Nie jest łatwo stworzyć algorytm. Można sobie pomóc, zaczynając od czegoś co nie jest algorytmem. Ucząc się mnożyć cyfry prawdopodobnie uczyliście się tabliczki mnożenia na pamięć. W efekcie zapamiętaliście 100 specjalnych rozwiązań. Tego typu wiedza nie jest algorytmiczna.

Gdybyście byli leniwi to prawdopodobnie zaczęlibyście lekko oszukiwać, stosując kilka trików. Na przykład, aby znaleźć iloczyn liczb n i 9, za pierwszą cyfrę wyniku możecie wstawić n - 1 a za drugą 10 - n. Sztuczka to to ogólne rozwiązanie dla mnożenia dowolnej cyfry przez 9. Jest to algorytm!

Podobnie, techniki na dodawanie z przeniesieniem, odejmowanie z pożyczką, czy dzielenie pisemne liczb wielocyfrowych to wszystko właśnie algorytmy. Jedną z własności algorytmów jest to, że nie wymagają one żadnej inteligencji, aby je przeprowadzić. Są to typowe automatyczne procesy, w których każdy następny krok wynika z poprzedniego i zależy tylko od zestawu prostych reguł.

Z drugiej strony, zrozumienie faktu, że nawet niezwykle trudne problemy mogą być rozwiązane poprzez pewnien przepis (algorytm), prowadzący nas krok po kroku jest jednym z większych, przełomowych ułatwień, niosących olbrzymie korzyści. Choć sama realizacja algorytmu będzie nudna, niewymagająca zbytniej inteligencji, to samo podejście algorytmiczne czy obliczeniowe jest bardzo znaczące. Sam proces projektowania algorytmu jest interesujący i intelektualnie wymagający. Jest on też głównym zagadnieniem tego, co nazywamy programowaniem.

Te rzeczy, które ludzie wykonują naturalnie, bez jakichkolwiek trudności czy nawet nieświadomie, zazwyczaj trudno ująć algorytmicznie. Dobrym przykładem będzie zrozumienie języka naturalnego. Wszyscy go używamy, ale jak narazie nikt nie był w stanie wytłumaczyć jak to robimy. Przynajmniej nie w formie przepisu wyjaśniającego ów proces krok po kroku.

Informacja

Ten obszar roboczy jest tutaj dla Twojej wygody. Możesz tu wypróbować dowolny program.




(scratch_07_03)

Następna część - Proste tablice