Bonjour tout le monde,
J'ai un devoir maison qui me pose problème. C'est un algorithme à faire avec le logiciel Algobox sur la loi binomiale. Ça fait une semaine que je me creuse la tête pour trouver ce qui ne va pas mais sans succès.Aidez-moi s'il vous plaît.
Voici l'énoncé:
Soit X une variable aléatoire qui suit une loi binomiale de paramètres n et p.
1. Recopier et compléter cet algorithme incomplet pour déterminer la plus grande valeur de k pour laquelle p(X>=k)>= 0.5.
Variables: N,K,C,I quatre nombres entiers naturels; P,A, deux nombres réels
Début
Saisir N
Saisir P
0-> A
N-> I
Tant que A<0.5:
Combinaison de I parmi N-> C
A+C*PI*(1-P)N-I-> A
I-1-> I
Fin Tant que
Afficher.....
Fin
2. Programmer cet algorithme sur Algobox et trouver la valeur de k pour n=120 et p=0.12.
Il y a encore deux autres questions mais je bloque déjà ici. Pour moi à la question 1 il suffisait de mettre "Afficher k" mais ce n'est pas seulement ça car k n'intervient pas dans l'algorithme. Et puis avec toutes ces variables, je m'y perds.
Il est possible qu'il y ait également une erreur dans l'énoncé de l'exercice du livre. Je pense que c'est le cas mais je ne vois pas où.
Merci à toutes les personnes qui voudront bien m'aider ! 
Merci pour la réponse. J'ai déjà envisagé ce cas de figure mais en changeant dans l'algorithme ça ne marche pas. Erreur de calcul à la combinaison de K parmi N.
Le voilà:
Début
Saisir N
Saisir P
0-> A
N-> K
Tant que A<0.5:
Combinaison de K parmi N-> C
A+C*PK*(1-P)N-K-> A
K-1-> K
Fin Tant que
Afficher K
Fin
Ça ne marche pas à "Combinaison de K parmi N-> C" il met "erreur de calcul".
C'est pas en syntaxe algobox tout ça
et aucune calculatrice ou algobox ne peut accepter une syntaxe comme "Combinaison de K parmi N"
ça t'etonne vraiment que ça ne marche pas 
Non je l'ai réécris en mode "papier" version Algobox:
Variables:
N du type nombre
K du type nombre
C du type nombre
P du type nombre
A du type nombre
Début algorithme:
Lire N
Lire P
A prend la valeur 0
K prend la valeur N
Tant que (A<0.5)faire:
Début Tant que:
C prend la valeur ALGOBOX_COEFF_BINOMIAL(K,N)
A prend la valeur A+C*pow(P,K)*pow(1-P,N-K)
K prend la valeur K-1
Fin Tant que
Afficher K
Fin Algorithme
C'est parce qu'il faut mettre C prend la valeur ALGOBOX_COEFF_BINOMIAL(N,K), tu as inversé N et K
VARIABLES
N EST_DU_TYPE NOMBRE
K EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
P EST_DU_TYPE NOMBRE
A EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE N
LIRE P
A PREND_LA_VALEUR 0
K PREND_LA_VALEUR N
TANT_QUE (A < 0.5) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR ALGOBOX_COEFF_BINOMIAL(N,K)
A PREND_LA_VALEUR A+C*pow(P,K)*pow(1-P,N-K)
K PREND_LA_VALEUR K-1
FIN_TANT_QUE
AFFICHER K
FIN_ALGORITHME
Essaye le dans http://proglab.fr/, ça marche
Merci ! C'est quand même bizarre car j'ai téléchargé le logiciel et ça ne marche pas(et pourtant j'ai corrigé l'erreur)... mais sur le site oui...
J'obtiens 13 avec N=120 et P=0.12 (pour la question 2), penses-tu que c'est logique ? Ça me paraît trop beau que ça marche 
Oui moi aussi j'ai remarqué que ça marche sur le site en ligne mais pas dans algobox. Et je ne sais pas pourquoi en fait, je n'ai pas trouvé d'erreur de syntaxe à priori
il n'accepte pas le ALGOBOX_COEFF_BINOMIAL(N,K)
Oui 13 c'est ce que j'ai trouvé aussi. Pourquoi pas ?
ha ça y est, je sais pourquoi, Algobox impose que n soit inférieur à 70 pour calculer la fonction ALGOBOX_COEFF_BINOMIAL(N,K) ça doit être dû à une limite de capacité à cause du calcul des factorielles.
(j'ai trouvé un pdf
qui explique assez bien toutes les erreurs classiques que l'on peut faire dans algobox)
Merci pour ton aide. C'est étrange mais bon du coup je continue avec le site en ligne (merci pour le lien !).
J'ai d'autres questions pour mon DM je poursuis et si ça te dérange pas de regarder...
3) A l'aide de l'algorithme précédent trouver un algorithme qui affiche la plus grande valeur de K pour laquelle p(X<K)<= 0.4.
Je pensais à ça:
VARIABLES
N EST_DU_TYPE NOMBRE
K EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
P EST_DU_TYPE NOMBRE
A EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE N
LIRE P
A PREND_LA_VALEUR 0
K PREND_LA_VALEUR N
TANT_QUE (A <= 0.4) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR ALGOBOX_COEFF_BINOMIAL(N,K)
A PREND_LA_VALEUR A+C*pow(P,K)*pow(1-P,N-K)
K PREND_LA_VALEUR K-1
FIN_TANT_QUE
AFFICHER K
FIN_ALGORITHME
4) Programmer cet algorithme et montrer que la valeur de K cherchée est 17 pour N=130 et P=0.14.
J'essaie et je trouve 18 et non 17 !
Quand on parcourt une dernière fois la boucle, on a encore A <= 0.4, K prend la valeur K-1 et A prend une valeur supérieur à 0.4, on reteste A <= 0.4 qui n'est pas vérifié et on saute à afficher K.
K est décrémenté après que A soit calculé donc pour le K que l'on affiche, le A qui correspond a été calculé avec K+1. Il faut donc prendre K-1 et pas K.
Donc par exemple il faut rajouter une instruction K PREND_LA_VALEUR K-1 après le TANTQUE
(ça veut dire qu'au début on a faux et qu'on aurait dû trouver 12)
VARIABLES
N EST_DU_TYPE NOMBRE
K EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
P EST_DU_TYPE NOMBRE
A EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE N
LIRE P
A PREND_LA_VALEUR 0
K PREND_LA_VALEUR N
TANT_QUE (A <= 0.4) FAIRE
DEBUT_TANT_QUE
C PREND_LA_VALEUR ALGOBOX_COEFF_BINOMIAL(N,K)
A PREND_LA_VALEUR A+C*pow(P,K)*pow(1-P,N-K)
K PREND_LA_VALEUR K-1
FIN_TANT_QUE
K PREND_LA_VALEUR K-1
AFFICHER K
FIN_ALGORITHME
Pour info, la ligne A PREND_LA_VALEUR A+C*pow(P,K)*pow(1-P,N-K) peut-être remplaçée par
A PREND_LA_VALEUR A+ALGOBOX_LOI_BINOMIALE(N,P,K) (et on peut supprimer la ligne précédente et la variable C)
Merci beaucoup, j'ai mieux compris !
J'ai du mal en algorithme en règle général, j'imagine que le meilleur moyen pour y arriver c'est d'en faire le plus possible.
En tout cas merci pour ton aide !
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :