Rekurencja


Rekurencja albo rekursja (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się np. funkcji lub definicji do samej siebie. Wbrew próbom rozróżnienia terminów [potrzebne źródło] rekursja i rekurencja w rzeczywistości słowa te mają identyczne znaczenie[potrzebne źródło].

Rekurencja, zwana także rekursją (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się np. funkcji lub definicji do samej siebie.

Rekursja ogonowa (albo rekurencja prawostronna) to rekursja, po której nie następuje już powrót do funkcji. Stosując taką rekursję można w ogóle nie używać stosu - jest równie wydajna jak imperatywna pętla.

Rekursja pośrednia to taka rekursja, w której jednocześnie jest definiowanych kilka (tzn. więcej niż jeden) obiektów, które nawzajem "z siebie korzystają".

Rachunek lambda z pozoru nie ma żadnego mechanizmu, który umożliwiałby rekurencję - nie można odwoływać się w definicji do samej funkcji. A jednak - rekurencję można osiągnąć poprzez operator paradoksalny Y.

Rekurencja ogonowa, zwana też prawostronną jest rodzajem rekurencji, w której ostatnia operacja wykonywana przez funkcję to rekurencyjne wywołanie samej siebie lub zwrócenie końcowego wyniku. Taka funkcja może zostać łatwo zamieniona na iterację, zarówno ręcznie, jak i automatycznie, co redukuje wielkość stosu oraz zwiększa wydajność. Ta technika iteracyjnego wykonywania obliczeń jest powszechna w programowaniu funkcyjnym promującym używanie rekurencji, która w przeciwnym wypadku zajęłaby cały dostępny stos.

Rachunek lambda to system formalny używany do badania zagadnień związanych z podstawami matematyki jak rekurencja, definiowalność funkcji, obliczalność, podstawy matematyki np. definicja liczb naturalnych, wartości logicznych, itd. Rachunek lambda został wprowadzony przez Alonzo Churcha i Stephen Cole Kleene w 1930 roku.

Twierdzenie o rekurencji uniwersalnej jest twierdzeniem matematycznym pozwalającym w łatwy sposób znajdować ograniczenie asymptotyczne pewnej klasy funkcji zdefiniowanych rekurencyjnie.

Dywan Sierpińskiego to fraktal otrzymany z kwadratu za pomocą podzielenia go na dziewięć (3x3) mniejszych kwadratów, usunięcia środkowego kwadratu i ponownego rekurencyjnego zastosowania tej samej procedury do każdego z pozostałych ośmiu kwadratów.

Programowanie funkcyjne (lub programowanie funkcjonalne) – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.

Krugle - wyszukiwarka kodów źródłowych zaprojektowana specjalnie dla programistów. Pozwala ona na przeszukiwanie kodów źródłowych, komentarzy, definicji/wywołań funkcji oraz definicji klas w jednym lub wszystkich językach programowania.

Programowanie funkcyjne (lub programowanie funkcjonalne) - filozofia programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.

Programowanie funkcyjne (lub programowanie funkcjonalne) – filozofia i metodologia programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.

Programowanie funkcyjne (lub programowanie funkcjonalne) – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.

Parser LL to parser czytający tekst od lewej do prawej i produkujący lewostronne wyprowadzenie metodą zstępującą. Popularne rodzaje parserów LL to parsery sterowane tablicą i rekurencyjne.

Reference counting (ang. - zliczanie referencji) w programowaniu jest najprostszą metodą zautomatyzowanego zwalniania zasobów pamięci zajmowanej przez dane, które przestały być potrzebne (tzw. garbage collection). W metodzie tej, wraz z każdym zaalokowanym w pamięci obiektem, przechowuje się licznik odwołań. Za każdym razem, kiedy do obiektu tworzy się nowe odwołanie (referencję), licznik ten jest zwiększany o 1, natomiast kiedy odwołanie znika, licznik jest zmniejszany o 1. Kiedy licznik osiągnie zero, obiekt jest kasowany – zajmowane przez niego zasoby pamięci są uwalniane i mogą zostać wykorzystane ponownie. Jeśli przed skasowaniem ów obiekt sam używał referencji do innych obiektów, to liczniki odwołań tych obiektów są przy tym zmniejszane o jeden; mogą zatem również osiągnąć wartość zero, co spowoduje rekursywne skasowanie kolejnych obiektów.

Derekursywacja - przemiana algorytmów rekurencyjnych (rekursyjnych) na iteracyjne. Stosuje się ją w celu zwiększenia szybkości działania aplikacji (korzystającej z algorytmów rekurencyjnych) oraz zmniejszenia jej zajętości pamięciowej.

Algorytm iteracyjny - algorytm, który uzyskuje wynik przez powtarzanie danej operacji określoną ilość razy. Niektóre problemy można rozwiązać zarówno za pomocą algorytmu iteracyjnego, jak i rekurencyjnego, jak np. problem wież Hanoi.

Średnią arytmetyczno-geometryczną dwóch liczb rzeczywistych dodatnich a i b, oznaczaną często w nomenklaturze anglojęzycznej przez AGM(a,b) lub M(a,b), nazywamy wspólną granicę następujących ciągów określonych rekurencyjnie:



       na podstawie Wikipedii, otwartej encyklopedii : licencje: GFDL, oraz CC-BY-SA 3.0 + autorzy, historia
edycja