[Algoritmi] Ricorsione e fattoriale

alfiere15
Ciao a tutti. Ho il flow-chat generale della ritorsione, in foto.
Come si applica, ad esempio, per il calcolo del fattoriale di 5?

Risposte
kobeilprofeta
non vedo nessuna foto... comununque ti interessa l'algoritmo ricorsivo per il determinante? se sí, quale linguaggio?

alfiere15
Ecco la foto...

kobeilprofeta
non so cosa vuoi...

ti do il codice di una funzione c

int fattoriale (int n)
{
if ((n==0)||(n==1)) {return 1;}
return (n*fattoriale(n-1));
}

apatriarca
Dopo questa immagine sono sempre più convinto della inutilità dei flowchart. Conosco molto bene la ricorsione ma mi ci è voluto un po' per capire cosa dovrebbero significare le varie scritte. Oltretutto non ha nulla a che vedere con la ricorsione. Confronta il tuo flowchart con il corrispondente pseudocodice per esempio:
function F(x1, ..., xn, y)
    C = 0
    z = X(x1, ..., xn)
    while y == C
        z = Q(x1, ..., xn, C, z)
        C = C+1
    return z
end

Ho cambiato i nomi di \(\chi\) e \(\psi\) in X e Q per comodità. Suppongo che da qualche parte avesse definito queste funzioni. Senza sapere cosa rappresentano non mi è chiaro quale sia il tuo obiettivo. Vuoi convertire una funzione ricorsiva in una iterativa? Altro?

alfiere15
Mi viene dato quel flowchart come flowchart generale di qualsiasi ricorsione. Solo che non si capisce niente. Io volevo provare a calcolare con quell'algoritmo il fattoriale di $n$ ma non sapevo da dove iniziare...

apatriarca
Non vedo come possa rappresentare la ricorsione se essa non appare da nessuna parte.. Inoltre non è assolutamente chiaro cosa dovrebbero rappresentare le varie parti. Mi chiedo perché complicare inutilmente la ricorsione in questo modo. È un concetto semplice e nella maggior parte dei casi in cui ha senso usarla è abbastanza immediato applicare il metodo..

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.