Bonjour,
J'ai cette fonction récursive en C qui est trop gourmande de point de vue temps d'exécution:
où del est défini par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 double t(double n,double i,double d) { if((n<0)||(i<0)||(d<0)) return 0; else return t(n-1,i-1,d)+t(n-1,i,d)+t(n-3,i-3,d-2)-t(n-3,i-2,d)-t(n-3,i-1,d)+t(n-3,i,d-2)-t(n-4,i-4,d-2)+t(n-4,i-2,d-4)+t(n-4,i-2,d)-t(n-4,i,d-2)+del(n,i,d)-del(n-1,i-1,d)-del(n-2,i-1,d)-del(n-3,i,d-2)+del(n-3,i-2,d); }
Cette fonction t sera utilisé dans 3 boucles for en variant n, i et d.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 double del(double n,double i, double d) { double res; if((n==0)&&(i==0)&&(d==0)) return 1; else return 0; }
Je veux l'implémenter avec Lisp ou Scheme pour leur efficacité dans ce type de cas.
A l'aide!
Partager