Autorisation : Membre
Nb de messages : 3
Inscrit le : Ven 04 Mai 2012, 15:31
Posté le : Ven 04 Mai 2012, 16:12
Rebonjour,escuser moi de crée deux topics differents le meme jour mais je suis dans l'embaras :/
Bref;
Dans la vie courante,il y'a quelques coinscidences,si dans une classe de 27 eleves,il peut y'avoir au moins 2 élèves qui on la meme date de naissance.
Premier temps:Simulation avec Ti-82 stats FR
Il s'agit de tirer au sort les 27 dates d'anniversaires.
Elles sont memorisées dans uen liste.
On suppose,que les dates d'anniversaire sont reparties uniformément surl 'année civile de 365 jours.
Un date d'anniversaire est un entier naturel entre 1 et 365 (exemple,l'entier 6 correspond a la date du 6 janvier,le 46 au 45 fevrier)
-Dans un deuxieme temps;Chercher si deux dates coincident.
1)Ecrire un algorithme qui simule l'experience.
2)Proposer une traduction de cet alogorithme pour votre calculatrice (Ti82 stats FR)
3)Executer le programme,donner la valeur renvoyée par votre calculatrice.
Interpreter le résulatat.
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Ven 04 Mai 2012, 17:25
1) Je ne sais pas.
2)
Code
27-> dim(L1 <-- il s'agit de la fonction L1 pas de L+1.
0->S
For(I,1,27
int(rand27+1->L1(I
End
For(I,1,27
For(J,1,27
If I=J
J+1->J
If L1(I)=L1(J
S+1->S
End
Disp S
Ce programme n'est pas du tout optimisé mais il fonctionne et j'ai pas voulu chercher des fonctions compliquées.
L'algorithme est tout-à-fait équivalent au code pour calculatrice, c'est pratiquement une traduction littérale.
Le J+1->J dans le code de sangohan38 me déstabilise, c'est équivalent à tester dans la condition suivante que I est différent de J.
Ce serait d'ailleurs plus clair pour le correcteur.
L'usage de la fonction rand (NbrAléat en français) est un grand classique de la calculatrice ti82, mais sur une ti82statfr il est plus simple d'utiliser la fonction entAléat(1,365)
De plus il est possible d'utiliser entAléat(1,365,27) pour générer tous les termes d'un coup. Mais la boucle For est plus rigoureuse que ce dernier raccourci.
Sangohan38 a oublié un End et la remise à zéro de S.
Le nombre S obtenu à la fin ne représente pas de valeur tangible, mais qu'il soit non-nul prouve qu'il y a au moins une paire.
(il représente en fait le nombre de paires, même si elles sont contenues dans des multiples, cela donne par exemple six paires dans un quadruplet).
Je propose de tester la nullité de S pour afficher vrai ou faux.
J'obtien l'algorithme et les codes suivants.
("les codes" parce que un commentaire indique un remplacement, ce qui donne un second code)
Code
dimmensionner la liste 1 à une longueur 27
Pour I de 1 à 27
// tu peux écrire "position I de la liste 1" au lieu de "L1(I)"
affecter L1(I) à un entier aléatoire entre 1 et 365
FinPour
Pause et afficher la liste1
Affecter S à 0
Pour I de 1 à 27
Pour J de 1 à 27
Si L1(I)=L1(J) et I différent de J
Alors
Affecter S à S+1
FinSi
FinPour
FinPour
Si S non nul
Alors
Afficher "VRAI
FinSi
Si S=0
Alors
Afficher "FAUX
FinSi
Code
27->dim(L1
For(I,1,27
entAléat(1,365->L1(I
End
// ce qui précède peut se remplacer par entAléat(1,365,27->L1
Pause L1
0->S
For(I,1,27
For(J,1,27
If L1(I)=L1(J) et I=/=J
S+1->S
End
End
If S=/=0 // "If S" suffit mais c'est moins bien connu
Disp "VRAI
If S=0
Disp "FAUX
Le symbole "différent de" se trouve dans le menu 2nde+math
entAléat dans le menu math+gauche
Remarque : dans ce code, j'ai enlevé les Then/End innutiles. (car mes tests n'ont qu'une seule action de sortie, ce qui ce simplifie)
---------------------- 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)