DM de Maths Algorithme

Forum d'archive d'entraide mathématique
Tocard
Messages: 3
Enregistré le: 04 Avr 2016, 21:51

DM de Maths Algorithme

par Tocard » 04 Avr 2016, 21:59

:D Salut les gens je ne sais pas comment faire et par où commencer donc si vous pouvez m'aider sa serai sympas.
Et mer ci d'avance pour les réponses et pour ceux qui vont prendre le temps de réfléchir au sujet :D ;) .

Sujet
Un point M peut se déplacer sur un quadrillage d'un pas dans l'une des quatre directions. Les quatre déplacements possibles se font au hasard. La position de M est représentée par ses coordonnées (x ; y) entières dans un repère orthonormé.

Au départ M est en (0 ; 0)

On continue les déplacements jusqu'à ce que M sorte du cercle de centre O et de rayon 10. La promenade est alors terminée.

On appelle N le nombre de pas au bout duquel M sort du cercle pour la première fois.

N est donc une variable aléatoire.

Le but de l'exo est d’essayer, en utilisant un algo de simulation, d'avoir une idée des probabilités des événements suivants :

A: " M sort du cercle en moins de 20 pas " N < ou = 20
B: " M sort du cercle après un nombre de pas compris entre 21 et 30 " 20<N< ou = 30
C: " M sort du cercle après un nombre de pas compris entre 31 et 40 " 30<N< ou = 40
D: " M sort du cercle en plus de 40 pas " 40<N

Questions :
1) Compléter ou modifier cet algo de façon à ce qu'il simule un très grand nombre de promenades (5000) et permettre de calculer la fréquence de chaque événement A, B, C et D.
(exemple: au terme de 5000 promenades simulées, le programme aura compté le nombre de promenades terminées en moins de 20 pas et en calculera la fréquence.)
Fichiers joints
OK.png
Voici l'algo à modifier
OK.png (30.85 Kio) Vu 194 fois



Avatar de l’utilisateur
messinmaisoui
Vétéran
Messages: 1893
Enregistré le: 24 Oct 2007, 14:52
Localisation: Moselle (57)

Re: DM de Maths Algorithme

par messinmaisoui » 05 Avr 2016, 12:05

En fait l'algorithme, tel qu'il est présenté, tourne tant que le point M
reste dans un cercle de rayon 10 ( x *x + y * y < 100)

Maintenant pour simuler 5000 balades, il faut encadrer ce bout de code
par une boucle qui tournera 5000 fois donc
=> Pour i de 1 à 5000 exécuter mon bout d'algorithme ...

Pour mémoriser les fréquences où les cas A, B, C, D
il faudra initialiser un compteur (Pas) avant d'entrer dans le bout de code et modifier
aussi l'intérieur du bout de code pour incrémenter ce compteur ... puis en sortant tester
dans quel cas A, B, C ou D on est

Dernier point pour mémoriser le nombre de promenades terminées en moins de 20 pas
il faudra aussi prévoir un autre compteur (CptA par exemple ) qui, si on est dans le cas A, s'incrémentera de 1 ...

En résumé ce genre :
Code: Tout sélectionner
Pour i allant de 1 à 5000 faire
-- Pas = 0
-- CptA = 0
-- Tant que ...
-- -- pas = pas +1

...

-- Fin Tant que ...

-- Selon valeur de Pas  ? On est dans le Cas A, B, C ou D  à afficher par exemple ...

-- Si on est dans le Cas A (Pas <=20) alors CptA = CptA + 1
-- Fin si 

Fin Pour

Afficher "Le cas A apparait : " CptA " fois sur 5000"



Algorithme à réfléchir, améliorer !? et/ou peut-être à corriger en cas d'erreurs de ma part :o
On peut se tromper dans un algorithme, mauvaise compréhension de l'énoncé, erreur , cas non envisagé etc ... c'est à la phase de test que l'on verra si tout fonctionne comme espéré ;)
Mon avatar me fait peur, est-ce normal docteur ?

Tocard
Messages: 3
Enregistré le: 04 Avr 2016, 21:51

Re: DM de Maths Algorithme

par Tocard » 05 Avr 2016, 19:11

Il ne fonctionnent toujours pas et cette fois je ne sais pas du tout d'où sa peut venir. :( :?
1 VARIABLES
2 dé EST_DU_TYPE NOMBRE
3 Nombre_de_lancers EST_DU_TYPE NOMBRE
4 x EST_DU_TYPE NOMBRE
5 y EST_DU_TYPE NOMBRE
6 P EST_DU_TYPE NOMBRE
7 Frequence_A EST_DU_TYPE NOMBRE
8 Frequence_B EST_DU_TYPE NOMBRE
9 Frequence_C EST_DU_TYPE NOMBRE
10 Frequence_D EST_DU_TYPE NOMBRE
11 A EST_DU_TYPE NOMBRE
12 B EST_DU_TYPE NOMBRE
13 C EST_DU_TYPE NOMBRE
14 D EST_DU_TYPE NOMBRE
15 DEBUT_ALGORITHME
16 P PREND_LA_VALEUR 0
17 POUR P ALLANT_DE 1 A 5000
18 DEBUT_POUR
19 x PREND_LA_VALEUR 0
20 y PREND_LA_VALEUR 0
21 TANT_QUE (x*x+y*y<=100) FAIRE
22 DEBUT_TANT_QUE
23 dé PREND_LA_VALEUR floor(random()*4+1)
24 Nombre_de_lancers PREND_LA_VALEUR Nombre_de_lancers+1
25 SI (dé==1) ALORS
26 DEBUT_SI
27 x PREND_LA_VALEUR x-1
28 FIN_SI
29 SI (dé==2) ALORS
30 DEBUT_SI
31 x PREND_LA_VALEUR x+1
32 FIN_SI
33 SI (dé==3) ALORS
34 DEBUT_SI
35 y PREND_LA_VALEUR y-1
36 FIN_SI
37 SI (dé==4) ALORS
38 DEBUT_SI
39 y PREND_LA_VALEUR y+1
40 FIN_SI
41 FIN_TANT_QUE
42 FIN_POUR
43 A PREND_LA_VALEUR Nombre_de_lancers
44 B PREND_LA_VALEUR Nombre_de_lancers
45 C PREND_LA_VALEUR Nombre_de_lancers
46 D PREND_LA_VALEUR Nombre_de_lancers
47 SI (Nombre_de_lancers<=20) ALORS
48 DEBUT_SI
49 Frequence_A PREND_LA_VALEUR A+1/5000
50 FIN_SI
51 SI (Nombre_de_lancers>21 ET Nombre_de_lancers<30) ALORS
52 DEBUT_SI
53 Frequence_B PREND_LA_VALEUR B+1/5000
54 FIN_SI
55 SI (Nombre_de_lancers>31 ET Nombre_de_lancers<40) ALORS
56 DEBUT_SI
57 Frequence_C PREND_LA_VALEUR C+1/5000
58 FIN_SI
59 SI (Nombre_de_lancers<40) ALORS
60 DEBUT_SI
61 Frequence_D PREND_LA_VALEUR D+1/5000
62 FIN_SI
63 AFFICHER "Nombre de lancers :"
64 AFFICHER Nombre_de_lancers
65 AFFICHER "Frequence A :"
66 AFFICHER Frequence_A
67 AFFICHER "Frequence B :"
68 AFFICHER Frequence_B
69 AFFICHER "Frequence C :"
70 AFFICHER Frequence_C
71 AFFICHER "Frequence D :"
72 AFFICHER Frequence_D
73 FIN_ALGORITHME

Tocard
Messages: 3
Enregistré le: 04 Avr 2016, 21:51

Re: DM de Maths Algorithme

par Tocard » 05 Avr 2016, 19:21

C'est peut être plus facile à comprendre :) :D
Désoler algo trop grand j'ai du le mettre en 3 fois.
1.png
DM 1er Partie
1.png (40.61 Kio) Vu 169 fois
2.png
DM 2nd Partie
2.png (33 Kio) Vu 169 fois
3.png
DM 3eme Partie
3.png (37.45 Kio) Vu 169 fois

Avatar de l’utilisateur
messinmaisoui
Vétéran
Messages: 1893
Enregistré le: 24 Oct 2007, 14:52
Localisation: Moselle (57)

Re: DM de Maths Algorithme

par messinmaisoui » 06 Avr 2016, 10:55

Frequence_A prend la valeur A+1/5000 .... ça ne me dit rien qui vaille !?

C'est A+1/5000 ou (A+1)/5000 ou A/5000 ce qui n'est pas pareil

et comme A = B = C = D = Nombre_de lancers d'après ton algorithme
pour quoi ne pas juste mettre déjà :
Frequence_A prend la valeur Nombre_de lancers/5000 ou (Nombre_de lancers + 1)/5000

Voilà mes remarques, je n'ai pas analysé ton algorithme, l'important c'est que tu vois
comment ça fonctionne et que tu sois donc sur la bonne voie ;-)
D'ailleurs ton pseudo Tocard indique que ça va le faire ;-)
Mon avatar me fait peur, est-ce normal docteur ?

 

Retourner vers ♲ Grenier mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite