Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

loi binomiale algorithme

Posté par
Blanquettou
18-04-16 à 12:49

Je n'arrive pas à résoudre cet exercice ...

1)Comment simuler une épreuve de Bernoulli dont le succès S a une probabilité p  ?
        
        Réponse :  1)  On peut simuler une épreuve de Bernoulli dont le succès S a une probabilité p en tirant au hasard un nombre entier entre 0 et 1 dans une liste composée de z nombres avec p*z nombres 1 et de (1-p)*z nombres 0.
On appellera "échec E" l'évènement "obtenir 0" et "succès S" l'évènement "obtenir 1".

Par exemple, dans une liste de 5 nombres, avec une probabilité de succès p= (3/5), on aura:

-   5*(3/5) = 3 nombres 1
-   (1-(3/5))*5= 2 nombres 0.


2)a. Ecrire un algorithme permettant de simuler un schéma de Bernoulli de paramètres n et p, à l'aide de la formule établie au 1), et qui affiche la valeur de la variable X qui compte les succès.

               Réponse :   On considère que z=10.

Entrer N
Enter P
P*10  --> S
Pour I allant de 1 à N
Choisir un nombre entre 1 et 10 --> F
Si F < ou égal à S
Alors
X+1-->X
Fin
Afficher X

b. Le programmer sur une calculatrice ou un logiciel.

           C'est là que ça ne marche pas: l'algorithme m'affiche en sortie soit 0 soit 1 soit rien du tout quelles que soient les valeurs de P et de N...

3) Ecrire un algorithme pour simuler la répétition N fois  du schéma de Bernoulli précédant et qui calcule la moyenne des valeurs de X obtenues.

          Vu que le précédant algorithme ne marche pas, je n'ai pas tenté... On aurait donc N*n épreuves de Bernoulli ??

4) Quand N devient grand, que peut on dire de cette moyenne ?
            
            A mon avis elle doit se stabiliser.


Voilà, si j'ai fait des erreurs, merci de me corriger... et pouvez vous me dire pourquoi mon algorithme ne marche pas ?

Merci beaucoup d'avance ! :)

Posté par
pgeod
re : loi binomiale algorithme 18-04-16 à 13:05

Au niveau syntaxe, il convient :

- d'initialiser la variable X à 0 (avant l'instruction pour);
- de rajouter le Fin de la boucle Pour(après le Fin du Si)

Posté par
Blanquettou
re : loi binomiale algorithme 18-04-16 à 13:14

Ah oui c'est vrai ça fonctionne mieux comme ça !
Merci

Mais du coup, pour la question 3, on aurait donc N répétitions de n épreuves de Bernoulli, donc N*n épreuves ? On aurait donc une deuxième boucle "Pour" ?

Posté par
pgeod
re : loi binomiale algorithme 18-04-16 à 19:16

c'est ça une deuxième boucle :
POUR J de 1 à N
et une variable supplémentaire S
qui fait la somme des X
(à la place du afficher X atuel : S = S + X)
puis on affiche en fin de programme
la moyenne : S/N

Posté par
carpediem
re : loi binomiale algorithme 18-04-16 à 19:57

salut

Citation :
On peut simuler une épreuve de Bernoulli dont le succès S a une probabilité p en tirant au hasard un nombre entier entre 0 et 1 dans une liste composée de z nombres avec p*z nombres 1 et de (1-p)*z nombres 0.


surement pas .... surement pas ....

et si p = \dfrac 1 {\pi} ?

Posté par
Blanquettou
re : loi binomiale algorithme 18-04-16 à 21:34

Je ne comprends pas...

Posté par
Blanquettou
re : loi binomiale algorithme 19-04-16 à 11:23

Ah je crois que j'ai trouvé :

Si p=1/n,    on a n=1/p       et 1=n*p= succès
Donc on effectue un tirage entre 1 et 1/p  et si le nombre tiré est égal à 1, il y a succès.

L'algorithme devient donc :

Entrer N
Entrer P
1/P -->D
0--> X
Pour I allant de 1 à N
Choisir un nombre entre 1 et D --> F
Si F = 1
Alors
X+1-->X
FinSi
FinPour
Afficher X


Et le deuxième algorithme :  soit R le nombre de répétitions, afin de ne pas mélanger les N

Entrer R
Entrer N
Entrer P
1/P -->D
0--> X
Pour J allant de 1 à R
Pour I allant de 1 à N
Choisir un nombre entre 1 et D --> F
Si F = 1
Alors
X+1-->X
FinSi
FinPour
S+X-->X
FinPour
Afficher X

Posté par
Blanquettou
re : loi binomiale algorithme 19-04-16 à 11:37

Je me suis encore trompé !
Pour le deuxième :

Entrer R
Entrer N
Entrer P
1/P -->D
0--> X
Pour J allant de 1 à R
Pour I allant de 1 à N
Choisir un nombre entre 1 et D --> F
Si F = 1
Alors
X+1-->X
FinSi
FinPour
S+X-->X
FinPour
Afficher S/R


Mais pour le tirage d'un nombre, dois je mettre la fonction RandInt de ma calculatrice ou la fonction RandNorm ?
En fait quand je met la fonction RandInt (tirer un nombre entier),  ça ne marche pas pour toutes les probabilités : par exemple pour p=0,3    donc p=3/10 , on a n=10/3 mais 10/3 n'est pas un nombre entier, donc l'algorithme ne veut pas tirer un nombre entier entre 1 et 10/3...
Mais si je met RandNorm, j'ai peur que ça ne fausse les résultats !

Posté par
pgeod
re : loi binomiale algorithme 19-04-16 à 13:14

on reviendra sur la manière de simuler un tirage avec une probabilité  p et 1-p...

Pour l'instant, corrige ton algorithme au niveau logique :

- l'initialisation à 0 de S n'est pas faite ;
- l'initialisation à 0 de X est mal placée ;
- le S+X-->X est faux.

Posté par
carpediem
re : loi binomiale algorithme 19-04-16 à 17:10

pour voir simuler une loi de Bernoulli de paramètre p : il faut calculer

x  = p + Aléa  (Aléa renvoie un nombre de l'intervalle [0, 1])

et prendre :

s = Ent(x) (Ent : fonction partie entière)

alors :

si 0 =< aléa =< 1 - p alors p =< x =< 1 donc s = 0 (1 si x = p)
si 1 - p =< aléa =< 1 alors 1 =< x =< 1 + p donc s = 1

Posté par
pgeod
re : loi binomiale algorithme 19-04-16 à 19:25

Bonsoir Carpediem.
Pourquoi pas simplement :
s = 0 ; if (alea() < p) then s = 1
quand penses-tu ?

Posté par
carpediem
re : loi binomiale algorithme 19-04-16 à 19:55

tout à fait ....

mais  ::

s = Ent(p + alea)

fait tout en une instruction .... d'où un gain de temps machine ...

Posté par
pgeod
re : loi binomiale algorithme 19-04-16 à 20:26

Posté par
Blanquettou
re : loi binomiale algorithme 21-04-16 à 14:12

Citation :
si 0 =< aléa =< 1 - p alors p =< x =< 1 donc s = 0 (1 si x = p)
si 1 - p =< aléa =< 1 alors 1 =< x =< 1 + p donc s = 1


C'est à dire ?

Posté par
carpediem
re : loi binomiale algorithme 21-04-16 à 21:09

voir à 17h10 ...

Posté par
Blanquettou
re : loi binomiale algorithme 23-04-16 à 12:23

Citation :
x  = p + Aléa  (Aléa renvoie un nombre de l'intervalle [0, 1])

et prendre :

s = Ent(x) (Ent : fonction partie entière)


Mais pourquoi x= p + aléa ?

Posté par
carpediem
re : loi binomiale algorithme 23-04-16 à 12:32

ben parce que ça marche .....

il suffit de faire un dessin pour voir ...

ensuite il suffit de l'écrire pour le prouver ...


à toi de faire ton travail ....



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 1675 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 !