Poster un nouveau sujet Poster une réponse
verification de programme
Auteur Message
monsalbert
Invité
Posté le : Lun 08 Avr 2013, 16:51   Citer 

excuse moi linka j'ai un code de proba qui pertube:

pour limiter la naissance des filles un pays décide :
• au maximum 4 enfants pour chaque famille ;
• arrêtant les naissances dès la naissance d'un garçon
* prob.F = prob.G =1/2

Quelle conséquence sur la population a cette politique de natalité ?

1/ On réalise une simulation avec l'algorithme suivant affichant la fréquence d'apparition d'un garçon :

--Variables :
-----N : nombre de familles
-----G : nombre de garçons au total
-----F : nombre de filles d'une famille
-----E : nombre d'enfants d'une famille
-----T : nombre d'enfants nés au total
--Début :
-----Saisir N
-----Initialiser G à 0
-----Initialiser T à 0
-----Pour I variant de 1 à N
-----Initialiser E à 0
-----Initialiser F à 0
--------Tant que E<4 faire
--------Tirer au hasard S entier entre 1 et 2
--------E prend la valeur E+1
--------T prend la valeur T+1
--------Si S=1
----------Alors G prend la valeur G+1
----------Sinon F prend la valeur F+1
--------Fin Si
--------Fin Tant que
-----Fin Pour
--Afficher G/T

je fais des essais et fixe N à 100, 200, 500.
En demandant en sortie N,T, G; G/T on obtient ces résultats??..

N= 200 ( ou 500 )
T= 4
G=1
G/T= 0.25 ( normalement on devrait trouver 0.50 )

Rq
- les recherches se poursuivent avec la fourmie...il faut identifier certaines de tes instructions (Ans. ?)

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 08 Avr 2013, 19:33   Citer 

Je code ton algorithme de la façon suivante :

Code
Prompt N
0->G
0->T
For(I,1,N
0->E
0->F
While E<4
entAléat(1,2->S
E+1->E
T+1->T
If S=1
Then
G+1->G
Else
F+1->F
End //Fin Si
End //Fin Tant que
End //Fin Pour
G/T

Mon premier test donne 0.5125 et le second 0.495 pour N=200.
C'est répéter la simulation (et faire la moyenne) ou augmenter le nombre d'expériences qui permettra de se rapprocher de la probabilité théorique.

Mais je doûte de ta proba 0.50.
On n'a pas le même nombre d'aléatoires selon qu'on obtient un garçon ou pas à chaque étape, puisqu'on doit s'arrêter.

Ou bien cela veut dire que l'arrêt n'est pas un prémisse du phénomène régulé mais une cause de la réglementation.

Je doûte donc de ton algorithme. Et j'optimise un peu.
J'écrit cela :
Code
Prompt N
0->T             // j'initialise juste le total de population
       // EDIT: 0->P
For(I,1,N
0->E
0->F
0->G
While E<4 and G=0 // arrête au premier garçon ou quatrième enfant (fille...)
E+1->E
T+1->T
If entAléat(0,1  // j'évite S mais on pouvait le garder
Then
1->G             // je sais que je ne compterai pas au delà de 1
       // EDIT : P+1->P
Else
F+1->F
End
End
End
Disp G,T,G/T   // EDIT : Disp "G",P,"F",T-P,"T
               //        Pause T
               //        Disp ,"G/T",P/T,"F/T",1-P/T,"F/MAX",(T-P)/(4N


J'écris le tableau suivant pour chaque famille :
G 0 1 1 1 1
F 4 3 2 1 0
T 4 4 3 2 1
x 4 4 3 2 1
avec x le nombre de branches suivies sur l'arbre de probabilité, donc la puissance de 0.5 en tant que proba pi=0.5^xi.
En fait c'est T.
espérance de G = 0.5^4+0.5^3+0.5^2+0.5^1
espérance de T = (4+4)*0.5^4+3*0.5^3+2*0.5^2+0.5^1

Puis je multiplie l'espérance par le nombre de familles pour connaître l'espérance du pays. La proba finale de chaque naissance est la même que par famille, mais la simulation du pays permet de rapprocher la proba réelle de la théorie.

---- EDIT:
Parler de proba n'a que peu d'intérêt, il vaut mieux regarder l'espérance.

G/T n'est pas correct avec ce programme, car G est utilisé pour chaque famille mais pas pour le pays.
VOIR EDIT DANS LE SECOND CODE.

J'ai ajouté corrigé mon dernier paragraphe (hors edit) en italique, avec notamment des compléments.


----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mar 09 Avr 2013, 20:10   Citer 

bonsoir linka,

- je faisais exactement le même code!..et quand je demandais à la fin G (nbre de garçons obtenus) la TI donnait 0,1,2,3 ou 4 c.à.d le E<4 je pense.
As-tu une explication? ..et j'en ai fait des essais.
à ton message ,j'ai carrément supprimé le code et le simple fait de tout réécrire çà a marché.

mais le malaise venait aussi d'ailleurs, le 1er code enregistre 4 réponses pour une même famille? Ton 2ème code avec

" While E<4 and G=0 // arrête au premier garçon ou quatrième enfant (fille..)"
est plus juste dans l'esprit de l'énoncé. il me reste à l'essayer..

merci linka.

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 10 Avr 2013, 23:09   Citer 

Nos codes ont chacun un défaut :
- le mien affiche le dernier G, T et le dernier G/T, ce qui n'a pas d'intérêt pour le pays.
De plus le sujet demande l'influence sur la population, pas le ratio garçon/total.
Il faut T. Et éventuellement T/(4N) (naissances/maximum)
- le tien affiche le dernier G/T, même conclusion.

E(T_pays)=N*E(T_famille)
T_pays~~T_final_programme~~E(T_pays)

Au final je répondrai que la loi limite la natalité à la valeur calculée de l'espérance du pays en moyenne.

En revanche on ne peut pas définir de maximum que la population suivrai sans la loi ni donnée, (on peut seulement approcher avec un très grand nombre d'enfant maximum par famille puisque la probabilité décroît), donc on ne donnera pas de rapport.

Il faudrait utiliser d'autres variables de la même façon que T si on veut étudier les espérances et probablitées liées au sexe sur tout le pays.
On pourrait alors indiquer la limitation moyenne de natalité de chaque sexe.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 11 Avr 2013, 0:35   Citer 

des essais faits ce jours sur ton code donnent :

pour N= 50
G= 1
T= 95, G/T= 0.0105
il y a un problème sur G. , avec N=100 G=1, T= 185
Pas d'addition des G?

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 11 Avr 2013, 12:33   Citer 

C'est le principal objet de mon message précédent :
Les variables G et F génèrent actuellement l'arbre de probabilité de chaque famille.
Il faut des variables supplémentaires au même titre que T.
J'edite mon code pour que ce soit clair. (j'ai choisi P)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink