Iteracja — Iteration

Iteracja to powtórzenie procesu w celu wygenerowania (prawdopodobnie nieograniczonej) sekwencji wyników. Każde powtórzenie procesu jest pojedynczą iteracją, a wynik każdej iteracji jest wtedy punktem wyjścia do następnej iteracji.

W matematyce i informatyce iteracja (wraz z powiązaną z nią techniką rekurencji ) jest standardowym elementem algorytmów .

W matematyce

W matematyce iteracja może odnosić się do procesu iteracji funkcji , tj. wielokrotnego stosowania funkcji, przy użyciu wyjścia z jednej iteracji jako wejścia do następnej. Iteracja pozornie prostych funkcji może powodować złożone zachowania i trudne problemy – na przykład zobacz przypuszczenie Collatza i sekwencje żonglerskie .

Innym zastosowaniem iteracji w matematyce są metody iteracyjne, które służą do tworzenia przybliżonych rozwiązań numerycznych niektórych problemów matematycznych. Metoda Newtona jest przykładem metody iteracyjnej. Ręczne obliczanie pierwiastka kwadratowego liczby jest powszechnym zastosowaniem i dobrze znanym przykładem.

W informatyce

W informatyce iteracja to technika wyznaczania bloku instrukcji w programie komputerowym dla określonej liczby powtórzeń. Mówi się, że ten blok instrukcji jest iterowany ; informatyk może również odnosić się do tego bloku sprawozdań jako o „iteracji”.

Poniższy pseudokod jest przykładem iteracji; linia kodu pomiędzy nawiasami pętli for będzie "iterować" trzy razy:

a = 0
for i from 1 to 3        // loop three times
{
    a = a + i            // add the current value of i to a
}
print a                  // the number 6 is printed (0 + 1; 1 + 2; 3 + 3)

Dozwolone, a często konieczne, jest użycie wartości z innych części programu poza blokiem instrukcji w nawiasach, aby wykonać żądaną funkcję. W powyższym przykładzie wiersz kodu używa wartości i w miarę wzrostu .

Związek z rekurencją

W sytuacjach algorytmicznych można zastosować rekurencję i iterację w tym samym celu. Podstawowa różnica polega na tym, że rekurencja może być stosowana jako rozwiązanie bez wcześniejszej wiedzy o tym, ile razy akcja będzie musiała się powtórzyć, podczas gdy pomyślna iteracja wymaga tej wiedzy.

Niektóre typy języków programowania, znane jako funkcjonalne języki programowania , są zaprojektowane w taki sposób, że nie tworzą bloku instrukcji dla jawnego powtórzenia, jak w przypadku pętli for . Zamiast tego te języki programowania używają wyłącznie rekurencji . Zamiast wywoływać blok kodu, który ma być powtórzony określoną liczbę razy, wykonujący blok kodu zamiast tego „dzieli” pracę do wykonania na liczbę oddzielnych części, po czym blok kodu wykonuje się na każdym pojedynczym kawałku. Każda praca będzie podzielona wielokrotnie, aż „ilość” pracy będzie tak mała, jak to tylko możliwe, w którym to momencie algorytm wykona tę pracę bardzo szybko. Algorytm następnie „odwraca” i ponownie składa elementy w kompletną całość.

Klasycznym przykładem rekurencji są algorytmy sortowania list, takie jak sortowanie przez scalanie . Rekurencyjny algorytm sortowania przez scalanie najpierw wielokrotnie dzieli listę na kolejne pary; każda para jest następnie uporządkowana, następnie każda kolejna para par i tak dalej, aż elementy listy znajdą się w żądanej kolejności.

Poniższy kod jest przykładem algorytmu rekurencyjnego w języku programowania Scheme , który wygeneruje ten sam wynik, co pseudokod pod poprzednim nagłówkiem.

(let iterate ((i 1) (a 0))
  (if (<= i 3)
    (iterate (+ i 1) (+ a i))
    (display a)))

Inna terminologia

W programowaniu obiektowym , iterator jest obiekt, który zapewnia iteracja jest wykonywane w ten sam sposób dla wielu różnych struktur danych, oszczędzając czas i wysiłek w próbach później kodowania. W szczególności iterator pozwala na powtórzenie tego samego rodzaju operacji na każdym węźle takiej struktury danych, często w określonej z góry kolejności.

Iteratee jest abstrakcją, która przyjmuje lub odrzuca informacje podczas iteracji.

Edukacja

W niektórych szkołach pedagogicznych iteracje są używane do opisania procesu nauczania lub prowadzenia uczniów do powtarzania eksperymentów, ocen lub projektów, aż do uzyskania dokładniejszych wyników lub do opanowania umiejętności technicznych przez ucznia. Ideę tę można znaleźć w starym powiedzeniu: „Praktyka czyni mistrza”. W szczególności pojęcie „iteracyjne” definiuje się jako „proces uczenia się i rozwoju, który obejmuje cykliczne badanie, dające ludziom wiele możliwości ponownego przyjrzenia się pomysłom i krytycznej refleksji nad ich implikacjami”.

W przeciwieństwie do informatyki i matematyki, iteracje edukacyjne nie są z góry określone; zamiast tego zadanie jest powtarzane aż do osiągnięcia sukcesu według pewnych zewnętrznych kryteriów (często testu).

Zobacz też

Bibliografia