Bonjour j'ai 2 exo sur les probas j ai reussi a tout aire sauf 2 questions
les 2 questions sont independantes et de 2 exos différents
1.On considere le programme python si dessous qui calcule la valeur du plus petit entier n tel que P(X≤ n)≥ 0,9. Completez ce programme
p=...........
k=0
while p.... 0,9:
p=.....
k=.....
print(....)
Cela est le programme que je dois remplir je sais que 8à personnes s appretent a passer le portail
pour chaque personne la proba qu'il sonne est 0,02192
soit X la variable aleatoire donnant le nombre de personnes faisant sonner le portique parmit les 8à personnes
P(X⩽1)=0,83
P(X⩽5)=0,992
2°j ai commnence a resoudre mon inequation mais je suis bloque
13/4(1/5)^n<10^-7
merci je suis preneur de tout aide
en sachant que pour l inequation je n ai pas vu la fonction logarithme
et pour python la premiere ligne p=0,02192
et while p⩽0,et print(n)
c est ce que je pense
bonjour
je ne parlerai que du 1er exo, puisque le site interdit de regrouper 2 exercices sur un même fil.
l'énoncé n'est pas recopié mot à mot, et c'est dommage,
car (notamment) en probabilité, la formulation de l'énoncé est très importante.
donc, sous réserve d'avoir compris :
il s'agit ici d'une loi binomiale de paramètres .... et .... ?
1) je ne suis pas d'accord avec
P(X⩽1)=0,83 -------- P(X⩽1) = P(X=0) + P(X=1)
P(X⩽5)=0,992 mm principe
2) tu proposes :
pour python la premiere ligne p=0,02192 ---- sauf erreur de ma part, non
tout dépend de ce que tu comptes faire à la 4ème ligne p=.....
et while p⩽0 -------- une probabilité négative ?
,et print(n) -------- le code écrit ici ne connait pas n, le programme va te retourner une erreur
je te propose de recopier ton énoncé mot à mot pour partir sur de bonnes bases.
Exercice 1
Dans un aéroport, les portiques de sécurité servent à détecter les objets métalliques que peuvent
emporter les voyageurs.
On choisit au hasard un voyageur franchissant un portique.
On note :
• S l'événement « le voyageur fait sonner le portique» ;
• l'événement «le voyageur porte un objet métallique ».
On considère qu'un voyageur sur 500 porte sur lui un objet métallique.
1. On admet que :
• Lorsqu'un voyageur franchit le portique avec un objet métallique, la probabilité que le por-
tique sonne est égale à 0,98;
• Lorsqu'un voyageur franchit le portique sans objet métallique, la probabilité que le por-
tique ne sonne pas est aussi égale à 0,98.
a. À l'aide des données de l'énoncé, préciser les valeurs de P(M), PV (S) et Py(5).
b. Recopier et compléter l'arbre pondéré ci-dessous illustrant cette situation.
c. Montrer que : P (S) = 0,021 92
d. En déduire la probabilité qu'un voyageur porte un objet métallique sachant qu'il a fait son-
ner le portique. (On arrondira le résultat à 10-3.)
2. 80 personnes s'apprêtent à passer le portique de sécurité. On suppose que pour chaque per-
sonne la probabilité que le portique sonne est égale à 0,021 92.
Soit X la variable aléatoire donnant le nombre de personnes faisant sonner le portique, parmi
les 80 personnes de ce groupe.
a. Justifier que X suit une loi binomiale dont on précisera les paramètres.
b. Donner la valeur arrondie à 10-3 de :
• la probabilité qu'au moins une personne du groupe fasse sonner le portique;
• la probabilité qu'au maximum 5 personnes fassent sonner le portique.
c. On considère le programme Python ci-dessous, qui calcule la valeur du plus petit entier n
tel que P(X < n) > 0,9. Compléter ce programme.
ok merci
je regarde tout ça et je reviens (un peu plus tard)
en attendant, étudie l'algorithme : demande toi à quoi tu veux qu'il serve (son but)
et comment tu ferais à la main (sans calculette) pour atteindre le but demandé.
a+
Tout mes résultats sont bon
1.a P(M)=0,002
Pm(S)=0,98
Pmbarre(S)=0,98
C) P(S)=0,02192
D)Ps(M)= 0,089
2a) X~B(80;0,02192)
B)- P(X<ou égal 1) =0,830
-P(Xou égal 5)=0,992
C est calcul sont sur par la peine de revenir dessus
l'énorme changement, c'est qu'il ne s'agit pas de 8 personnes, mais de 80
2b
>> probabilité qu'au moins une personne du groupe fasse sonner le portique;
au moins 1 personne (sur les 80), c'est soit 1, soit 2 , soit 3 , .... soit 80
et donc ce n'est pas p(X⩽1) mais p(X1)
on trouve bien environ 0.83
>> probabilité qu'au maximum 5 personnes fassent sonner le portique.
ok pour P(X⩽5)=0,992 environ
j'attends ton explication sur l'algo.
nos messages se sont croisés
oui tout est bon sauf l'écriture p(X⩽1) (voir ci-dessus)
et Pmbarre(S)=0,98
ok merci pour cette rectification,
le but de l algo est de connaitre la plus petite valeur n avec P(X⩽n)≥0,9
donc c est quand p sera superieur ou égal a 3 le programme s arrete et donne n
le but de l algo est de connaitre la plus petite valeur n avec P(X⩽n)≥0,9 ---- oui
donc c est quand p sera superieur ou égal a 3 ----- pourquoi 3, alors que l'on demande 0.9 ?
et d'ailleurs, une proba peut-elle être supérieure à 1 ?
---
pour cette question 2 c) tu as besoin de connaitre le cours :
1> sachant que X suit la loi binomiale B(80, 0.02192 ),
comment calcule-t-on la proba p(X=k), pour un k donné ?
2> que signifie p(X2) ? (je prends k=2 pour exemple)
écris p(X2) sous forme de somme de probabilités.
---
ensuite (seulement), explique comment faire pour calculer p(X2) à la main
fais le rapprochement avec l'algo de l'énoncé
sur cet algo,
que représente k ?
que représente p ?
à quoi sert la boucle while?
etc.
^pardon 3 est la vleur qu on doit trouver a la fin du programme
non une proba est compris entre 0 et 1
c est la formule nCk*p^k*(1-p)^n-k
2) cela veut dire c est la proba qu au max 2 personnes au max on fait sonner le portique
3 est la valeur qu on doit trouver a la fin du programme --- oui, et ça correspond à l'affichage de quelle variable de l'algo?
p est la proba --- oui mais laquelle ? précise
à quoi sert cette variable p? que contient-elle ?
k est n --- non
n = 80 ici
k est la variable, qui va s'incrémenter à partir de 0,
qui prendra donc successivement les valeurs 0, puis 1, puis 2... jusqu'à ce que p(Xk) soir supérieur à 0.9
et là le programme s'arrêtera.
la boucle sert a continuer la formule tant que p≥0,9 ---- tout à fait
et dans cette boucle, on va faire quoi alors ?
p(X⩽2) = P(X=0)+P(X=1)+P(X=2) ---- exactement !
et p(X=k) = nCk*p^k*(1-p)^n-k ----- d'accord - et ça va nous servir
j'ai laissé passé une bourde :
la boucle sert a continuer la formule tant que p≥0,9
en rouge, faux; tu vois pourquoi ?
corrige
p est la proba que le portique sonne pour une personne
k prend +1 a chauqe fois qu on fait une fois la boucle
euh non je vois pas l erreur car on cherche P(X⩽n)≥0,9 donc cest le bon signe
et pour p= il faudrait peut etre mettre la formule
p est la proba que le portique sonne pour une personne --- non, pas dans l'algo tel qu'il est amorcé dans l'énoncé
==> tu ne m'as toujours pas dit, en phrases simples, comment va fonctionner ton algo - même si tu t'en approches .
et c'est à partir de cette réflexion que ce sera plus clair pour toi.
comment tu ferais, à la main?
qu'est ce qu'on doit faire, dans la boucle ?
k prend +1 a chaque fois qu on fait une fois la boucle --- oui
on cherche P(X⩽n)≥0,9 donc c'est le bon signe --- non
on sortira de la boucle dès que la proba p(X<=k) sera ≥0,9
et donc la boucle doit 'tourner' tant que ... (while signifie 'tant que')?
et pour p= il faudrait peut etre mettre la formule ---- tout à fait
à noter que cette formule, qui permet de calculer p(X=k) est un produit, dont le coefficient binomial est un facteur.
pour calculer ce coefficient binomial :
- il existe déjà une instruction qui calcule directement ce coeff, selon la version du logiciel python que tu as (à partir de la version 3.8, je crois)
perso, j'ai la version 3.6, et cette instruction n'y est pas accessible.
- dans ce cas, tu peux créer une fonction qui permet de le calculer (à partir de la définition du cours, avec les factorielles)
à noter : la fonction 'factorial' du module 'math' calcule directement la factorielle d'un nombre p fourni.
il y a bien sûr plusieurs façons de coder ce coefficient binomial...
rappels :
le signe doit changer de sens: p≤0,9
dans la boucle tant que 0,9 n est pas atteint on refait la formule en ajoutant K+1 a chaque fois juqu a atteindre 0,9
pour la formule j ai pas compris comment faire du tout
le signe doit changer de sens ---- oui, mais au sens strict : p<0,9
en cas d'égalité à 0.9, la condition 0.9 est remplie, donc on sort de la boucle
dans la boucle tant que 0,9 n est pas atteint on refait la formule en ajoutant K+1 a chaque fois jusqu a atteindre 0,9
c'est presque ça, j'explique:
au début k= 0, tu vas calculer p(X=0) et tu vas mettre le résultat dans ....?
on ajoute 1 à k ==> k = 1
tu vas calculer p(X=1) et ....?
P(X≤k)=P(X=0)+P(X=1)+....+P(X=K-1)+P(X=K)
tu vois bien que pour calculer P(X≤k) et le comparer à 0.9
il va falloir cumuler (additionner) tes calculs p(X=k)
--
complète ce que tu sais déjà :
p=...........
k=0
while p.... 0,9:
p=.....
k=.....
print(....)
--
pour la formule j ai pas compris comment faire du tout
calcule p(X=0) à la main (détaille tout ton calcul ici), sans calculatrice
p(X=0) = ...?
je suis desole mais j ai beaucoup de chose a faire et cela est juste une petite question donc je ne perdrai pas beaucoup de points je pense je vais laisser tomber(car j y arrive pas et cela me prend beaucoup trop de temps) je verrai pour reprendre plus tard, merci quand meme
p=0,02192
k=0
while p< 0,9:
p=..(la formule°.
k=.....
print(....)
p(x0)= 80c0*0,02192^0*(1_0,02192)^80
ne laisse pas tomber, ce serait dommage; et puis tu as encore du temps avant la rentrée.
lorsque k=0
p(X=k) = p(X=0)= 80c0 * 0,02192^0 * (1-0,02192)^(80-0) --- c'est ça!
pour calculer le coefficient binomial, on utilise sa formule :
avec n= 80
et k qui s'incrémente de 1 en 1 à partir de 0, dans la boucle
sachant que k!, factorielle k, il y a une fonction python qui le calcule à ta place, je te l'ai indiquée plus haut.
dans le code, on peut donc rajouter cette formule dans le calcul de p(X=k) - ou bien créer une fonction pour ça, mais je vais au plus simple.
ce que tu t'obstines à ne pas dire, c'est que dans la variable p, on va ajouter successivement les calculs de
p(X=0)
p(X=1)
p(X=2) etc
sachant que cette somme, ce sera p(X<=k), que l'on compare à 0.9 à chaque itération.
en clair :
au 1er tour de boucle, p = p(X=0) = p(X<=0)
au 2eme tour de boucle, p = p(X=0) + p(X=1) = p(X<=1)
au 3eme tour de boucle, p = p(X=0) + p(X=1) + p(X=2) = p(X<=2)
etc.
-----
p=0 ---- au début, au initialise cette variable à 0; p sera égal, dans la boucle, à p(X<=k)
k=0
while p< 0,9:
p = p + la formule qui calcule p(X=k)
k=..... ---- ça tu peux faire tout seul
print(....) --- que veut-on en sortie ? quelle variable on va afficher ?
je te laisse réfléchir tranquillement à tout ça.
relis nos échanges antérieurs si besoin.
je reste à l'écoute si tu souhaites poursuivre.
a+
on parle de n mais il y a pas de n sur le programme ??
p=p+ la formule nCk*p^k(1-p)^n-k
et k= k+1
print(k) on veut afficher le nombre de fois ou on a fait la boucle
on parle de n mais il y a pas de n sur le programme ??
en effet, ce code est minimaliste, avec peu de variables.
donc on mettra directement 80 quand on en aura besoin (constante)
p=p+ la formule nCk*p^k(1-p)^80-k
>> remplacer ce qui est en bleu par la formule ce que j'ai indiquée précédemment
>> remplacer les "p" dans la formule par la valeur de p(S) trouvée en 1c) - ne pas confondre "p" du programme et "p" proba de l'exo
>> utiliser la bonne syntaxe python écrire une formule mathématique,
et pour faire des puissances : le symbole ^ ne fonctionnera pas en python (fais des recherches si besoins)
k= k+1 --- oui
print(k) on veut afficher le nombre de fois ou on a fait la boucle ----- ... hum... presque
je ne rectifie pas cette mini erreur : tu la rectifieras de toi-même quand tu feras tourner ton code ... ou après réflexion
compare ce que tu as écrit :
p=p+ 80!/k!(80-k)!*80**k*(1-80)**(80-k)
avec ce que tu m'as dit tout à l'heure :
p(X=0)= 80c0 * 0,02192^0 * (1-0,02192)^(80-0)
... c'est quoi tous ces 80 dans ta formule ? n'aurais-tu pas perdu la proba en route ?
---
pour 80!/k!(80-k)! oui, mais pour que ce soit correctement lisible par python, il manque des ( ) est un *
python ne connait pas ! pour faire factorielle
ah mince j ai rajoute trop de 80 les 2 derniers 80 je dois mettre 0,02192 a la place
il faut mettre ! entre parenthee?
il faut mettre ! entre parenthee? non, ça ne marchera pas, je l'ai dit.
Oula si j ai bien compris je dois écrire la ligne au début
Et après j ai juste a écrire factorial(n) à chaque fois qu'il y a un factoriel
oui
la 1ère ligne permet d'avoir accès à la fonction factorial du module math, pour l'utiliser dans ton programme.
demain, tu essaieras ton programme, et tu me diras ce qu'il te renvoie...
a+
from math import factorial
n =int(input())
print (n,"! =",factorial(n))
p=0
k=0
while p <0,9:
p=p+(80)/(k)(80-k)*0,02192**k(1-0,02192)**80-k
print(k)
il y a marque erreur
from math import factorial
n =int(input())
print (n,"! =",factorial(n)) --- non, ces 2 lignes ne sont pas à mettre
p=0
k=0
while p <0,9:
p=p+(80)/(k)(80-k)*0,02192**k(1-0,02192)**80-k
print(k)
il y a marque erreur --- bah oui^^
p = p + ..... relis toi à 29-12-21 à 18:18, et corrige
0,02192**k(1-0,02192)**80-k manque un signe * et des ( )
---
le plus efficace pour montrer exactement ta saisie de code :
- tu la copies-colles
- tu cliques sur le bouton </> qui est sous la fenêtre de saisie ici
- tu colles
from math import factorial
p=0
k=0
while p <0,9:
p=p+(80)/(k)((80-k))*0,02192**k*(1-0,02192)**80-k
print(k)
from math import factorial
p=0
k=0
while p <0,9:
p=p+(80)/(k)((80-k))*0,02192**k*(1-0,02192)**(80-k) ---- et où tu calcules les factorielles là-dedans ?
print(k)
mais je pensais que pour factorielle c 'etait entre parenthese , mais dcp il faut je m aide de
n =int(input())
print (n,"! =",factorial(n))
qui me montre comment mettre les factorielles non ?
par mon petit programme de 29-12-21 à 20:24
je te montrais seulement comment mettre en application la fonction factorielle de python.
n =int(input()) --- sert à l'utilisateur pour saisir une valeur n (au clavier)
print (n,"! =",factorial(n)) ---- permet l'afficher de la factorielle de n.
mais ce programme n'a rien à voir avec le tien.
ce que tu dois en retenir,
c'est que chaque fois que tu veux faire calculer une factorielle par python, tu tapes le code factorial(machin-truc)
==> par ex, si tu veux calculer 2! * 3!, tu codes factorial(2)*factorial(3)
si tu ne précises pas dans ton programme à quel moment précis tu veux une factorielle, comment veux-tu qu'elle le devine ?
n'oublie pas qu'une machine a des capacités electroniques de mémoire et de rapidité, mais qu'elle totalement stupide ^^;
elle fera exactement ce que tu lui dis, ni plus ni moins.
ok ?
et vérifie ton code, tu en as oublié une ligne importante (cf énoncé)
oui j avais oublie une ligne
from math import factorial
p=0
k=0
while p <0.9:
p=p+factorial(80)/factorial(k)*factorial(80-k)*0.02192**k*(1-0.02192)**80-k
k=k+1
print(k)
on se rapproche
tu as essayé de faire tourner ça ? ... l'interpréteur va rouspéter ^^
il manque deux fois des ( )
et ton indentation est à corriger au while et au print
corrige ça
quelle valeur t'est retournée ?
toujours erreur j ai rajoute des parentheses
from math import factorial
p=0
k=0
while p<0.9:
p=p+factorial(80)/(factorial(k)*factorial(80-k))*0.02192**k*(1-0.02192)**(80-k)
k=k+1
print(k)
c'est la tabulation obligatoire (des espaces).
sans indentation correcte, le programme ne fonctionnera pas.
from math import factorial
p=0
k=0
while p<0.9:
p=p+factorial(80)/(factorial(k)*factorial(80-k))*0.02192**k*(1-0.02192)**(80-k)
k=k+1
print(k)
bravo !
... reste un détail à régler : tu dois obtenir 3
l'erreur de code se situe dans la ligne du print(k).
vois-tu ce qu'il te faut modifier ?
si besoin, copie-colle le code ci-dessous : j'ai rajouté une ligne (qu'il faudra bien sur enlever ensuite).
si tu le fais tourner, il t'affichera, pour chaque tour de boucle
p(Xk) , et à coté la valeur de k concernée
from math import factorial
p=0
k=0
while p <0.9:
p=p+factorial(80)/(factorial(k)*factorial(80-k))*0.02192**k*(1-0.02192)**(80-k)
print(p, " : k=", k)
k=k+1
print(k)
je ne vois pas ce que je dois faire j ai essaye (0+k) mais ca change rien
je comprend meme pas pourquoi il y a un probleme...
déroule ton programme à la main, ligne après ligne
p=0
k=0 # au début p=0 et k= 0
while p <0.9: # est-ce que p est < 0.9 : oui, donc on rentre dans la boucle
p=p+ blabla # on calcule p(X<= 0)
k=k+1 # ... et on rajoute 1 à k
while p <0.9: # est-ce p est toujours < 0.9 : oui, donc on re-rentre dans la boucle
p=p+ blabla # on calcule p(X<= ...?)
k=k+1 # ... et on rajoute 1 à k
....... on refait ça un certain nombre de fois...
while p <0.9: # est-ce p est toujours < 0.9 : NON on ne rentre pas dans la boucle.... on va directement à
print(k) # et donc ....?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :