ALG0

ALG0



30 Rozdział 2. Rekurencja 2.2

potwornie skomplikowany: klocków jest cala masa i niespecjalnie wiadomo jak się do tego całościowo zabrać. Mimo ograniczonych umiejętności na pewno nie-przerasta go następująca czynność: wziąć jeden klocek z podłogi i włożyć doi pudełku. Małe dziecko zamiast przejmować się złożonością problemu, którejś być może sobie nawet nie uświadamia, bierze się do pracy i rodzice z przyjemnością obserwują jak strefa porządku na podłodze powiększa się z minuty na minutę.

Zastanówmy się chwilkę nad metodą przyjęta przez dziecko: ono wic, że pro-; blem postawiony przez rodziców to wcale nie jest „zebrać wszystkie klocki"

(bo to de facto jest niewykonalne za jednym zamachem), ale: „wziąć jeden klocek,j przełożyć go do pudelka, a następnie zebrać do pudełka pozostałe”. W jaki sposób można zrealizować to drugie? Proste, zupełnie tak jak poprzednio: „bierzemy! jeden klocek...” itd. - postępując tak do momentu wyczerpania się klocków... |

Spójrzmy na rysunek 2-1, który przedstawia w sposób symboliczny tok rozu-l litowania przyjęty przy rozwiązywaniu problemu „sprzątania rozsypanych! klocków'”.    1

Rys. 2 - I.

Sprzątanie klocków czyli rekurencja w praktyce.


Jest mało prawdopodobne, aby dziecko uświadamiało sobie, że postępuje w sposób j rektirencyjny, choć tak jest w istocie! Jeśli uważniej przyjrzymy się opisanemupowyżej problemowi, to zauważymy, że jego rozwiązanie charakteryzuje się następującymi cechami, typowymi dla algorytmów rekurencyjnych:

•    zakończenie algorytmu jest jasno określone („w momencie gdy na podłodze nie będzie więcej klocków, możesz uznać, że zadanie zostało wykonane”).

•    „duży” problem został rozłożony na problem elementarny (który umiemy rozwiązać) i na problem o mniejszym stopniu skomplikowania niż ten. z którym mieliśmy do czynienia na początku.

Zauważmy, że w sposób dość śmiały użyte zostało określenie „algorytm”. Czy jest sens mówić o opisanym powyżej problemie w kategorii algorytmu? Czy w ogóle możemy przypisywać pięcioletniemu dziecku wiedzę, z której ono nie zdaje sobie sprawy?

Przykład, na podstawie którego zostało wyjaśnione pojęcie algorytmu rekuren-cyjnego, jest niewątpliwie kontrowersyjny. Prawdopodobnie dowolny specjalista!


Wyszukiwarka

Podobne podstrony:
ALG0 50_ _Rozdział2. Rekurencja Odpowiadający temu rozumowaniu program przedstawia się
ALG0 170 Rozdział 6. Oerekursywaci 6.3. Uwaga: Wywołanie rekurencyjne procedury P zawarte w jakiejk
ET0 30 Rozdział 2. Podstawowa terminologia turystyczna Rysunek 2.2. Kryterium wyróżniające turystów
ALG0 20 Rozdział 1. Zanim wystartujemy (Na marginesie warto dodać, że przedsiębiorstwo Hollcritha
ALG2 32 Rozdział 2. Rekurencja Wyżej podaliśmy warunki pozytywnego zakończenie programu. W przypadk
ALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowan
ALG2 42 Rozdział 2. Rekurencja 2. m.in. wartości zmiennych tego poziomu (tzw. kontekst). Co więcej,
Alg4 44 Rozdział2. Rekurencja ( if (lg>0) ( lineto(x+lg,y); lineto(x+lg,y+lg); lineto
ALG6 46_ _ Rozdział2. Rekurencja rekurencyjnych jest pamięcioźerność: wielokrotne wywołania rekuren
ALG8 48 Rozdział 2. Rekurencja W celu dokładniejszego przeanalizowania algorytmu posłużymy się kilk
ALG2 52 Rozdział 2. RekurenZad. 2-4Oto jedno z możliwych rozwiązań: trójkąty ,cpp double y) void nu
Alg0 60 Rozdział 3. Analiza sprawności algorytmów •    Znak graficzny 3 należy czyta
ALG0 70 Rozdział 3. Analiza sprawności algorytmów Przykład: SRL=xn-3x„.i+2 x„ -2=0 daje
ALG 0 90 Rozdział 4. Algorytmy sortowania 90 Rozdział 4. Algorytmy sortowania Rys. 4 - 8. Sortowanie
ALG0 100 Rozdział 5. Struktury danyi z tych przypadków w istniejącej liście trzeba znaleźć miejsce
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
ALG0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O);    II element nie

więcej podobnych podstron