Inscription / Connexion Nouveau Sujet

1 2 +


Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 09:40

bonjour ZEDMAT
... bon, ben là je pense qu'il va la repérer, son erreur

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 15:59

from random import *

def simulation (n, k):
    som=0
    for i in range (n):
        a=randint(0,1)
        b= randint(0,1)
        c= randint(0,1)
        d= randint(0,1)
        e= randint(0,1)
        S=a+b+c+d+e
        if S==k:
            som=som+1
        f=som/n
        return f


Si je récapitule, j'obtiens 0 ou 0.001 car ma boucle est fermée et par la même occasion mal placée et prend comme valeur uniquement 0 ou 3. Donc pour que j'obtienne les bons résultats, je dois sortir le calcul de f et le 'return f' de mon indentation ?

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:05

from random import *

def simulation (n, k):
    som=0
    for i in range (n):
        a=randint(0,1)
        b= randint(0,1)
        c= randint(0,1)
        d= randint(0,1)
        e= randint(0,1)
        S=a+b+c+d+e
        if S==k:
            som=som+1
    f=som/n
    return f


J'ai modifié mon programme de la sorte et maintenant lorsque je tape simulation (10000,3), j'obtiens 0.3124
Ce n'est pas le résultat attendu n'est-ce pas ?

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:07

"je dois sortir le calcul de f et le 'return f' de mon indentation ? " --- oui
je te l'ai indiqué ici : 05-12-21 à 10:12
et là : 05-12-21 à 21:16  (et suivants, dont ce matin)

fais ce changement (comprends-tu bien sa nécessité ?)

et à la suite de ton programme rajoute les lignes nécessaires pour afficher les fréquences pour k de 0 à 5

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:13

oups désolée
tu as déjà fait la modif (je viens de mettre mes lunettes :/)

reste donc la boucle d'appel de la fonction, à faire

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:27

mais est ce que c'est normal que j'obtienne 0.3124?
J'ai cru comprendre dans vos précédents messages que j'étais censé obtenir 0.03125 ...

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:44

f = 0.3125 est la valeur exacte, calculée avec la formule donnée par la loi binomiale.
dans cette valeur exacte, intervient notamment le coefficient binomial (3 parmi 6) = 6 combinaisons différentes.

or dans le programme, le nombre de succès (1) sont générés aléatoirement (randint),
et donc la fréquence d'obtention du "3" peut être différente du calcul théorique ;
sur un grand nombre d'essais (10000) f aura tendance à se rapprocher de la valeur exacte,
mais il est normal de trouver par ex 0.3124 ou 0.3219.

fais tourner plusieurs fois ton programme pour le constater.

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 16:46

* coefficient binomial (3 parmi 6) = 20 combinaisons différentes.

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 17:33

C'est (x parmi 6)??
J'ai fait absolument tous mes calculs avec (x parmi 5)
Pour p(X=3) j'ai fait : (3parmi5)x 0.53x 0.52=0.3125
Est ce que c'est bon ou pas du tout ?

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 17:58

e) Calculer P(X-3)
oui, c'est 5, évidemment...
autant pour moi, ça m'apprendra à faire plusieurs choses en même temps. :/

p(X=3) = (3parmi5)x 0.53x 0.52=0.3125   c'est exact

pour f) tu calcules la probabilité des autres valeurs de X

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 20:41

autant pour moi, j'ai eu un coup de chaud
Pour la question b) où il m'est demandé d'obtenir la fréquence de chaque compartiment pour 10 000 lancers, comment je suis censé faire ça ?
je dois faire une boucle et je dois entrer "print(5)" en dessous de "for i in a range (n)?

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 20:58

b)
pour k=3, sous la fonction (dans le programme),
si tu tapes   print("pour k = 3, fréquence =   ", simulation(10000,3))

tu vas obtenir la fréquence pour k=3

----

pour obtenir les fréquences de toutes les valeurs de k=0 à 5
oui, tu dois faire une boucle de la forme :

for i in range (....?):
        print (.... à adapter selon le modèle ci-dessus....)


une petite remarque :
quand tu calcules, avec la loi binomiale, toutes les probas pour X de 0 à 5,
et que additionnes ces probabilités, tu sais que tu dois toujours trouver 1.
on l'apprend dans le cours.

en revanche, par curiosité,
tu calculeras la somme des fréquences que tu trouveras via python...

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 21:15

J'ai voulu faire un test avec

print("pour k = 3, fréquence =   ", simulation(10000,3))
mais que dois-je entrer dans la console pour obtenir ma fréquence ?
Juste pour être sûre, je dois bien mettre cette ligne en dessous de
for i in range (n)
?

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 21:22

pas dans la console,  
tu lances directement un "run" ou "exécuter" directement

la petite flèche verte planche de Galton et loi de Bernoulli

----

Juste pour être sûre, je dois bien mettre cette ligne en dessous de
for i in range (n)


non, je m'explique :
ton programme doit avoir ces 3 parties, l'une après l'autre :

1) importation du module : from random import *   ---- fait

2) la fonction simulation
qui commence par simulation (n, k):
et se termine par return f   ----- fait

3) le corps principal du programme
c'est là que tu vas mettre ta (nouvelle) boucle qui va appeler la fonction
autant de fois que nécessaire

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 21:27

pour que ce soit bien clair, voici le code pour obtenir la fréquence pour k= 3.

l'instruction print("pour k = 3, fréquence = ", simulation(10000,3))
est écrite à la suite, dans le programme et après la fonction , pas dans la console.


from random import *

def simulation (n, k):
    som=0
    for i in range (n):
        a=randint(0,1)
        b= randint(0,1)
        c= randint(0,1)
        d= randint(0,1)
        e= randint(0,1)
        S=a+b+c+d+e
        if S==k:
            som=som+1
    f= som/n
    return f

print("pour k = 3, fréquence = ", simulation(10000,3))

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 06-12-21 à 21:53

ahhhh oui d'accord maintenant j'obtiens 0.3103 c'est tout de suite beaucoup plus cohérent.
Pour la dernière question sur laquelle j'éprouve des difficultés, la question e)Calculer P(X=3) et comparer le résultat obtenu au a) et expliquer cette différence
J'ai P(X=3)=0.3125
et au a) j'ai également obtenu 0.3124, il n'y a pas de différence, ou alors je suis censée prendre la valeur théorique, soit 0.03125?

Posté par
carita
re : planche de Galton et loi de Bernoulli 06-12-21 à 21:59

P(X=3)=0.3125    je confirme

a) j'ai également obtenu 0.3124

que je sache, 0.3124, ou 0.3103  (trouvé via python) est différent de 0.3125 (valeur exacte), non ?

et si tu fais tourner plusieurs fois ton programme,
il y a beaucoup de chances pour que tu trouves encore un autre nombre différent de 0.3125 !

relis attentivement  06-12-21 à 16:44
et la petite remarque à la fin de  06-12-21 à 20:58

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 07-12-21 à 17:13

J'ai donc fait la somme des fréquences que j'ai trouvé via python et j'obtiens 0.9961. Or c'est différent le fait d'obtenir une fréquence et une probabilité, dans le sens où pour P(X=3) j'ai trouvé 0.3125 et pour la fréquence du compartiment 3 sur 10000 lancers j'obtiens 0.3124. La probabilité de chaque compartiment est égale à 1 et la probabilité des fréquences de chaque compartiment sur 10 000 lancers = 0.9961

Cela s'explique du fait que la somme des probabilités d'une expérience est forcément égale à 1 contrairement à une fréquence où ce n'est pas nécessairement le cas
Est ce cela la cause de cette différence ?

Posté par
carita
re : planche de Galton et loi de Bernoulli 07-12-21 à 17:27

bonjour jeansch

J'ai donc fait la somme des fréquences que j'ai trouvé via python et j'obtiens 0.9961
oui, et si tu relances ton programme plusieurs fois, et que tu calcules à nouveau cette somme de fréquence,
tu vas trouver des nombres toujours plus ou moins proches de 1.

La probabilité de chaque compartiment est égale à 1
ça non, c'est la somme des probabilités de tous les compartiments (toutes les valeurs de la variable aléatoire X).

- par les probabilités (loi binomiale), on trouve exactement 1
- par les fréquences sur cette expérience, on trouve aux environs de 1

ceci n'était qu'un aparté dans ton exo,
mais je souhaitais attirer ton attention sur le distinction entre proba via calcul,
et fréquences via cette expérience aléatoire (où les nombres sont générés au hasard à chaque fois)

si d'aventure, au lieu de 10000 simulations, tu en fais 100000 ou 1 000 000,
- si ton ordi tient le coup ^^ -
tu constateras que tes fréquences sont plus 'affinées', plus proches des  valeurs calculées p(X=k)

Posté par
carita
re : planche de Galton et loi de Bernoulli 07-12-21 à 17:28

si tu souhaites me montrer le code que tu as écrit pour afficher les (6) fréquences...

Posté par
jeansch
re : planche de Galton et loi de Bernoulli 07-12-21 à 19:16

Je n'ai pas créé de code pour les fréquences, j'ai juste changé de nombre dans :

print("pour k = 0, fréquence =   ", simulation(10000,0))

Pour la fréquence du compartiment 1, j'écrivais :
print("pour k = 1, fréquence =   ", simulation(10000,1))

1 2 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !