Oggi ho fatto una scoperta alquanto piacevole....
Ho fatto un programmino con c++ utilizzando le ricorsioni...
Il programma chiede quale numero n della seguenza di Fibonacci si vuole conoscere.//FIBONACCI con il metodo della ricorsione
#include
using namespace std;
long FIBONACCI (long, int&);
int main()
{
int conta=0;
long n, risultato;
cout";
cin>>n;
risultato=FIBONACCI (n, conta);
cout"<<risultato<<endl;
}
long FIBONACCI (long n, int &conta)
{
conta++;//conta quante volte FIBONACCI viene eseguito
cout<<conta<<endl;
if(n==0 || n==1)
return n;
else
return FIBONACCI (n-1, conta) + FIBONACCI (n-2, conta);
}
Es. se n=4 il programma calcolerà il quarto numero della seguenza di fibonacci, cioè 3.
Questo programmino è famoso per la sua lentezza che aumenta esponenzialmente con l'aumentare di n.
Ma ho notato che con Linux il tempi diminuiscono enormemente!!!
Es. Lo stesso codice compilato su Windows con Dev-C++ con n=30 ci mette 5minuti e 10 secondi, mentre con Linux, compilato con Anjuta, ci mette solo 1minuto e 23 secondi
Ma come mai??? non dovrebbe essere lo stesso programma????


