Poster un nouveau sujet Poster une réponse
anniversaire
Auteur Message
ravienger
Invité
Posté le : Ven 27 Avr 2012, 16:12   Citer 

j'ai besoin d'aide pour la réalisation d'un algorithme:

on propose de déterminé si, dans une classe de 27, il peut y avoir au moins deux élèves qui ont la même date d'anniversaire.

Pour cela, on effectue une simulation à l'aide de la calculatrice.
Dans un 1er temps: il s'agit de tirer au sort les 27 dates d'anniversaire. Elles sont mémorisées dans une liste.
On suppose que les dats d'anniversaire sont réparties uniformément sur l'année civile de 365 jours. Une date d'anniversaire est un entier naturel entre 1 et 365.
(cette partie je l'ai réalisée sans problème c'est la suite qui est plus complexe !!)

Dans un second temps: il faudra chercher si deux dates coïncident. (là je ne sais pas comment faire.)

  Haut de page Bas de page 
 
ravienger
Invité
Posté le : Ven 27 Avr 2012, 16:19   Citer 

Pour la première partie voici l'algorithme que j'ai trouvé:

Entrée: /
Traitement: EffListe1 (L1)
Pour I allant de 1 à 27 faire
Stocker un nombre entier aléatoire compris entre 1 et 365 au rang I dans la liste 1
Sortie: Afficher la Liste

en language calculatrice ça donne ça :
:EffListe L1
:For(I,1,27)
:entAléat(1,365)->L1(I)
:End
:Disp L1

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 27 Avr 2012, 17:49   Citer 


Citer
On propose de déterminer si, dans une classe de 27, il peut y avoir au moins deux élèves qui ont la même dâte d'anniversaire.

Oui il est tout-à-fait possible que deux élèves aient la même dâte de naissance.
La question suivante que je me pose est la probabilité d'un tel évènement.
Une simple simulation me semble manquer de rigueur vis-à-vis de la recherche mais suivons tout-de-même l'énoncé de l'exercice.

----
Ce que tu as posté en guise de simulation est correct.
Mais il existe une option à la fonction entAléat permettant de générer toute la liste d'un coup.

Code
entAléat(1,365,27)->L1
Pause L1



----
Pour tester si deux variables sont identiques, je propose de passer en revue toutes les valeurs de la liste avec deux boucles imbriquées.

Code
0->B
For(C,1,27
For(D,1,27
If L1(C)=L1(D) et C[différent de]D
1->B
End
End
If B
Disp "VALIDE
If non(B
Disp "INVALIDE


==== facultatif, visiblement non-demandé par l'énoncé.
Ce que je propose comme crible est une imbrication de boucles For passant en revue toutes les valeurs 1 à 365 de chacune des 27 variables dâte de chacun des élèves.
A l'intérieur de ces boucles il reste alors à détecter les situations où deux dâtes au moins sont confondues.
J'ai un problème : les 27 variables lettres de la calculatrice sont utilisées par le crible alors il est plus compliqué d'écrire un test de détection de dâtes identiques.
Je suis contraint d'utiliser d'autres variables moins pratiques comme "N", "I%", "ValAct" et "PMT" du menu Finance.
Pour les saisir, va dans le menu Finance>variables

Code
0->PMT // ceci est une variable du menu finance
For(A,1,365
For(B,1,365
...   // for avec toutes les lettres de C à Y
For(Z,1,365
For(¤,1,365 // "¤" représente thêta, le rond barré de la touche 3
{A,B, ... ,Z,¤->L1 // remplir la liste avec chacune des variables

0->ValAct
For(N,1,27      // ce "N" n'est pas le N normal, mais celui du menu finance
For(I%,1,27
If L1(N)=L1(I%) et N[différent de]I%
1->ValAct
End
End
If ValAct
PMT+1->PMT

End //¤
End //Z
...
End //B
End //A
Disp PMT // ceci est une variable du menu finance

Peut-être ai-je commis une erreur, n'hésitez pas à signaler.

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





  Page générée en 6 requêtes