Bonjour, je suis actuellement en classe de 1ere S , et mon professeur nous a donné la semaine dernière un devoir maison.
J'ai travaillé dessus tout le week end mais impossible de trouver la solution.
Je dois déterminé comment serait la répartition de garçons dans la population si jamais les familles décideraient d'avoir 3 enfants maximum et de ne plus avoir d'enfant après la naissance d'un garçon.
Comme information il rajoute que sur 100 naissances , 52 sont des filles et 48 sont des garçons.
Pour répondre , il veut que nous fassions un algorithme simulant 100 naissances, puis 1000 , et pour finir 10 000.
Pour le moment, j'ai fait un arbre pour m'aider , je pense qu'il s'agit d'une loi géométrique tronquée.
Mais lorsque j'essaye de faire mon algorithme cela ne fonctionne pas, car je ne sais pas de quelle maniére je dois procéder. J'ai trop de variables.
n : pour le nombre de naissance
k ( car il est dans la formule de la loi géométrique tronquée.)
P(x) mais celui ci je l'ai nommée m , car je ne savais pas comment faire .
E : échec ( fille)
S : succès ( Garçon)
Bon voila . Si jamais vous avez quelques idées je suis prenante...
Bonne soirée
Bonsoir,
A vérifier:
ALGOBOX : FAMILLE
CODE DE L'ALGORITHME :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 i EST_DU_TYPE NOMBRE
4 r EST_DU_TYPE NOMBRE
5 k EST_DU_TYPE NOMBRE
6 tg EST_DU_TYPE NOMBRE
7 tf EST_DU_TYPE NOMBRE
8 g EST_DU_TYPE NOMBRE
9 f EST_DU_TYPE NOMBRE
10 m EST_DU_TYPE NOMBRE
11 DEBUT_ALGORITHME
12 tg PREND_LA_VALEUR 0
13 tf PREND_LA_VALEUR 0
14 n PREND_LA_VALEUR 100
15 POUR m ALLANT_DE 1 A 3
16 DEBUT_POUR
17 POUR i ALLANT_DE 1 A n
18 DEBUT_POUR
19 g PREND_LA_VALEUR 0
20 f PREND_LA_VALEUR 0
21 k PREND_LA_VALEUR 0
22 TANT_QUE (k<3 et g<1) FAIRE
23 DEBUT_TANT_QUE
24 k PREND_LA_VALEUR k+1
25 r PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,100)
26 SI (r<=48) ALORS
27 DEBUT_SI
28 g PREND_LA_VALEUR 1
29 FIN_SI
30 SINON
31 DEBUT_SINON
32 f PREND_LA_VALEUR f+1
33 FIN_SINON
34 FIN_TANT_QUE
35 tg PREND_LA_VALEUR tg+g
36 tf PREND_LA_VALEUR tf+f
37 FIN_POUR
38 AFFICHER tg
39 AFFICHER " garçons"
40 AFFICHER tf
41 AFFICHER " filles"
42 AFFICHER " pour "
43 AFFICHER n
44 AFFICHER " familles"
45 AFFICHER "___________________________"
46 n PREND_LA_VALEUR n*10
47 FIN_POUR
48 FIN_ALGORITHME
RÉSULTATS :
***Algorithme lancé***
82 garçons
101 filles
pour 100 familles
___________________________
941 garçons
1025 filles
pour 1000 familles
___________________________
9581 garçons
10317 filles
pour 10000 familles
___________________________
***Algorithme terminé***
Généré par AlgoBox
g comme garçons
f comme filles
tg comme total garçons
tf comme total filles
r nombre au hasard entre 1 et 100, de 1 à 48 c'est un garçon de 49 à 100 c'est une fille
k nombre d'enfants dans une famille
n nombre total de famille n=10m+1
Bonjour,
En Xcas voilà ce que je ferais:
Naissance(n):={
local k,G,F,X,Y,j,temp;
G:=0;F:=0; //total garçons;total filles
pour k de 1 jusque n faire //k le nombre de familles
X:=0;Y:=0; //nb garçons dans une famille;nb filles dans une famille
pour j de 1 jusque 3 faire //j le nombre d'enfants dans une famille
temp:=alea(100)+1; // choisir au hasard un enfant
si temp<=48 alors // si c'est un garçon
X:=1;break // on sort de la boucle
sinon
Y:=Y+1 // une fille de plus
fsi
fpour
G:=G+X;F:=F+Y
fpour
retourne [[G/(G+F),F/(G+F)],evalf([G/(G+F),F/(G+F)],2)]
}
Mais il faudrait tout de même vérifier
Le but est-il de montrer que les proportions restent égales à 0.48 et 0.52 ?
Un intérêt de Xcas consiste à taper:
debug(Naissance(10))
et à suivre les affectations des variables.
Bonjour,
Merci Alb12
Oui, Xcas est très puissant.
J'ai testé votre programme: rien à signaler.
Bon, je complète mon programme algobox:
44 AFFICHER " familles"
45 g PREND_LA_VALEUR tg*100/(tg+tf)
46 f PREND_LA_VALEUR tf*100/(tg+tf)
47 AFFICHER g
48 AFFICHER " % de garçons"
49 AFFICHER f
50 AFFICHER " % de filles"
51 AFFICHER "___________________________"
52 n PREND_LA_VALEUR n*10
53 FIN_POUR
54 FIN_ALGORITHME
RÉSULTATS :
***Algorithme lancé***
82 garçons
104 filles
pour 100 familles
44.086022 % de garçons
55.913978 % de filles
___________________________
948 garçons
1012 filles
pour 1000 familles
48.367347 % de garçons
51.632653 % de filles
___________________________
9512 garçons
10285 filles
pour 10000 familles
48.047684 % de garçons
51.952316 % de filles
___________________________
***Algorithme terminé***
Généré par AlgoBox
Alors la je suis sous le choc . Je ne m'attendais pas du tout a avoir une réponse aussi complète. Je me suis inscrite hier soir sur ce forum dans l'espoir d'avoir quelques renseignement mais la au point d'avoir tout l'algorithme...Je ne sais meme pas quoi dire... Merci beaucoup de votre aide.
Je vais tester votre algorithme chatof. Et je vais essayer de comprendre ( car il faut que je puisse le refaire en controle ! ) Alb 12 , je ne connais pas Xcas, avec mon professeur nous utilisons uniquement algobox... Mais je vous remercie également!
Bonne journée, et encore une fois , merci beaucoup !!
je n'ai pas reussi a le faire fonctionner. Mes resultats s'affichent 3 fois d'affilés... Je ne comprend pas pourquoi.
Version plus simple avec lecture de n
ALGOBOX : FAMILLE
CODE DE L'ALGORITHME :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 i EST_DU_TYPE NOMBRE
4 r EST_DU_TYPE NOMBRE
5 k EST_DU_TYPE NOMBRE
6 tg EST_DU_TYPE NOMBRE
7 tf EST_DU_TYPE NOMBRE
8 g EST_DU_TYPE NOMBRE
9 f EST_DU_TYPE NOMBRE
10 DEBUT_ALGORITHME
11 tg PREND_LA_VALEUR 0 (nombre total de garçons)
12 tf PREND_LA_VALEUR 0 (nombre total de filles)
13 LIRE n (lecture du nombre de famille n)
14 POUR i ALLANT_DE 1 A n
15 DEBUT_POUR
16 g PREND_LA_VALEUR 0
17 f PREND_LA_VALEUR 0
18 k PREND_LA_VALEUR 0
19 TANT_QUE (k<3 et g<1) FAIRE (la boucle s'arrête pour un garçon ou 3 enfants)
20 DEBUT_TANT_QUE
21 k PREND_LA_VALEUR k+1 (k compteur d'enfants)
22 r PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,100) (génère un nombre aléatoire entier entre 1 et 100)
23 SI (r<=48) ALORS (dans 48% des cas c'est un garçon)
24 DEBUT_SI
25 g PREND_LA_VALEUR 1 (dans la famille "i" g compte les garçons)
26 FIN_SI
27 SINON ( dans 52% des cas c'est une fille)
28 DEBUT_SINON
29 f PREND_LA_VALEUR f+1 (dans la famille "i" f compte les filles)
30 FIN_SINON
31 FIN_TANT_QUE
32 tg PREND_LA_VALEUR tg+g (on ajoute le nombre de garçons de la famille "i" au total des garçons tg)
33 tf PREND_LA_VALEUR tf+f (on ajoute le nombre de filles de la famille "i" au total des filles tg)
34 FIN_POUR
35 AFFICHER tg
36 AFFICHER " garçons"
37 AFFICHER tf
38 AFFICHER " filles"
39 AFFICHER " pour "
40 AFFICHER n
41 AFFICHER " familles"
42 FIN_ALGORITHME
RÉSULTATS :
***Algorithme lancé***
8599 garçons
9267 filles
pour 10000 familles
***Algorithme terminé***
Généré par AlgoBox
Sur mon profil j'ai une adresse mail, je peux donc vous envoyer les fichiers
L'arbre :
1 famille → 0,48 garçons.......................................................................= 1 garçon 0 fille
….............→ 0,52 filles............→ 0,52*0,48 garçons...................................= 1 garçon 1 filles
..........................................→ 0,52*0,52 filles....->0,52*0,52*0,48 garçons.....= 1 garçon 2 filles
..................................................................->0,52*0,52*0,52 filles.........= 0 garçon 3 filles
Total :
(0,48 + 0,52*0,48 + 0,52*0,52*0,48) = 0,859 garçons = 48 %
(0,52*0,48 + 0,52*0,52*0,48*2 + 0,52*0,52*0,52*3) = 0,931 filles = 52 %
ou
(0,48 + 0,52*0,48 + 0,52*0,52*0,48) = 0,859 garçons (48 %)
(0,52 + 0,52*0,52 + 0,52*0,52*0,52) = 0,931 filles (52 %)
Soit 1,790 enfants (le seuil de renouvellement de la population est 2,2)
On ne peut pas choisir le sexe de l'enfant, notre choix ne porte que sur le nombre d'enfants. A chaque étape le rapport filles/garçons est respecté, donc à la fin aussi.
Si on remplace 0,48 par g et 0,52 par f avec g+f =1
garçons= g*(1+b+b²)
filles=f*( 1+b+b²)
Si on limite la famille à n enfants (et non 3)
De même si on joue à pile ou face, ou à la roulette ou autre, il n'existe pas de martingale pour gagner !
c'quoi tn mail je t'envoi l'algoritmhe comme sa tu verifies pasque a ligne 25 ne marches pas ou envoi moi le dossier
Bonsoir Serigno
Avez-vous la version 0.6 Algobox ?
Une mise à jour ?
[lien]
On peut remplacer
25 r PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,100)
par :
25 r PREND_LA_VALEUR floor(random()*100)+1
ALGOBOX_ALEA_ENT(p,n) = floor(random()*n + p)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :