Complexité dans des fonctions imbriquées
on a comme fonctions :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
int f_Appel_g (int n){
if((n == 0) ||(n == 1))
return (1);
else
return g_Appel_f(g(n-2));
}
int g_Appel_f (int n){
if((n = 0))
return (1);
else
return (f_Appel_g (f(n - 1)*f_Appel_g (n - 1));
} |
S'il faut chercher la complexité de f_Appel_g en nbre de multiplication.
je commence à chercher le nbre de multiplication dans chaque fonction:
f_Appel_g :
Code:
1 2
| si n = 0 ou n= 1, C f_Appel_g (n) = 0
si n > 1 C f_Appel_g (n) = C g_Appel_f (n -2) |
et pour g_Appel_f
Code:
1 2
| si n = 0, C g_Appel_f (0) = 0
si n > 0 C g_Appel_f (n) = 1 + 2 C f_Appel_g (n -1) |
mon souci est comment relier les deux relations, on a le droit d'écrire :
Code:
1 2 3
|
si n <= 2 , C f_Appel_g (n) = 0
si n > 2 C f_Appel_g (n) = 1 + 2 C f_Appel_g (n -3) |
merci d'avance,
GM