Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czy można się obyć bez rekursji?

Ostatnio zmodyfikowano 2014-10-20 19:06
Autor Wiadomość
wilkoo13
Temat założony przez niniejszego użytkownika
Czy można się obyć bez rekursji?
» 2014-10-17 19:58:57
Czy nie używając rekursji można program napisać w taki sposób aby działał w taki sam sposób jak z nią. Czy są pewne rzeczy których nie da się rozwiązać bez używania rekursji?
P-118707
pekfos
» 2014-10-17 20:00:16
Wszystko się da, ale często nie ma to sensu.
P-118709
1aam2am1
» 2014-10-17 20:04:39
Wskaźniki
Edit. Źle przeczytałem.
P-118715
SocrateZ
» 2014-10-17 21:59:49
Masz na mysli rekurencje?
Tak - dowodem na to są PĘTLE (while, for, do-while).
Do zastąpienia rekurencji możesz użyć do-while - wiesz że wykona się przynajmniej raz.

Wszystko się da, ale często nie ma to sensu.
Owszem, ale rekurencje są wolniejsze niż ich odpowiedniki.

Wskaźniki
Skąd ty tu wskaźniki wytrzasnąłeś?
P-118734
Memento96
» 2014-10-18 12:42:35
Jemu nie chodzi o rekurencję a o rekursję
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ą".
P-118753
Rashmistrz
» 2014-10-18 15:44:37
Czy można się obyć bez rekursji?
Zawsze jakiś sposób jest...
http://pl.wikipedia.org/wiki​/Algorytm_iteracyjny

Przykładowo silnia:
C/C++
int silnia( int n ) {
    if( n == 0 || n == 1 )
         return 1;
   
    int tmp = n;
    while( n > 1 )
         tmp *=( --n );
   
    return tmp < 2 ? 0: tmp;
}

jak i przykładowo ciąg Ciąg Fibonacciego:
C/C++
int fib( int n ) {
    bool ujemna = n < 0 ? true: false;
    n < 0 ? n =- n: n =+ n;
    if( n < 3 )
         return n == 0 ? 0
        :( ujemna ? - 1
        : 1 );
   
    int fib1, fib2, tmp, tmp2;
    fib1 = 1, fib2 = 1;
    for( int i = 3; i <= n; i++ )
    tmp = fib1 + fib2,
    fib1 = fib2,
         fib2 = tmp;
   
    return ujemna ? fib2 =- fib2: fib2 =+ fib2;
}
Oczywiste są problemy przy tych algorytmach,
gdy wywołujemy element ciągu o dużym indeksie...
a przy "20!" już zaczynają się problemy z
powodu ograniczeń liczbowych komputera. :F

Jemu nie chodzi o rekurencję a o rekursję
To to samo, tylko że rekursja to
nie poprawna kalka z angielskiego.

Ktoś sobie napisał wpis na blogu o tej rekurencji pośredniej i innych:
http://sesjawpigulce.cba.pl/​?notatka=rekurencja-koncowa-nie-koncowa-posrednia-zagniezdzona
P-118777
SocrateZ
» 2014-10-18 21:56:20
@Memento96
Jemu nie chodzi o rekurencję a o rekursję
Zapewniam cię iż nie ma czegoś takiego jak REKURSJA. Jak kolega wyżej wspomniał - jest to NIEPOPRAWNE spolszczenie angielskiego słowa.
http://sjp.pwn.pl/szukaj​/rekursja.html
http://sjp.pwn.pl/szukaj​/rekurencja.html
P-118819
Rashmistrz
» 2014-10-19 13:13:11
Czy są pewne rzeczy których nie da się rozwiązać bez używania rekurencji?
Tak dobre pytanie, że aż trudno mi na nie odpowiedzieć.
Po prostu nic nie wiem na ten temat. Brak danych. O_o
P-118861
« 1 » 2 3
  Strona 1 z 3 Następna strona