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:
, C'est à dire dans le cas de la distribution binomiale de
elements choisi parmi
éléments avec
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 quefois, 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
fois avec le paramètre
...
Partager