Bonjour!

J'ai eu un algorithme en cours et le professeur a demandé de trouver combien de fois serait-il appelé dans le cas suivant:
Formule mathématique, C'est à dire dans le cas de la distribution binomiale de Formule mathématique elements choisi parmi Formule mathématique éléments avec Formule mathématique leur probabilité d'apparaitre.

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
    double binomial1(int N, int k, double p) {
        if (N == 0 && k == 0) return 1.0;
        if (N < 0 || k < 0) return 0.0;
 
        return (1.0 - p) * binomial1(N-1, k, p) 
             + p * binomial1(N-1, k-1, p);  
    }

La question était: combien de fois binomial1 serait il appeler pour évaluer binomial1(100, 50, 0.25) ?

j'ai d'abord tenté de mettre un system.out.println dans le code avec un indice incrementant à chaque fois que l'algorithme était appelé. J'ai remarqué que c'était une folie quand j'ai atteint

passed 2485266 times

TPuis je me suis demandé si ce n'était pas que Formule mathématique fois, dès lors que l'algorithme est appelé deux fois à chaque tours? cependant, p*binomial1(N-1, k-1, p) semble n'être appelé que Formule mathématique fois avec le paramètre Formule mathématique...