Inscription / Connexion Nouveau Sujet

1 2 +


Niveau seconde
Partager :

Algorithme

Posté par
cocopink
13-04-11 à 13:57

Bonjour,

Voici un exercice que je ne parviens pas à résoudre:

On propose l'algorithme ci-contre écrit en langage AlgoBox:

Que fait cet algorithme?

Pourriez vous m'aider SVP ?

MERCI D'AVANCE

Algorithme

Posté par
cocopink
re : Algorithme 13-04-11 à 14:40

Désolé l'algorithme ci-dessus est faut.

Celui ci est correcte:

Algorithme

Posté par
cocopink
re : Algorithme 13-04-11 à 14:43

Il y a encore une petite faute.

Enfaite vers la fin de l'algorithme L[j] PREND_LA_VALEUR x    et FIN_POUR    sont normalement inversés.

Posté par
cocopink
re : Algorithme 13-04-11 à 14:56

pourriez vous m'aider SVP??

Posté par
cocopink
re : Algorithme 13-04-11 à 15:23

Voici l'algorithme écrit en langage AlgoBox.

Cette fois-ci il est tout juste

Algorithme

Posté par
Surb
re : Algorithme 13-04-11 à 15:32

Salut,
Je ne connais pas du tout algobox, mais de ce que j'ai compris:
on créer un vecteur L de taille N, dont les entrées sont -1 ou +1, et cela dépend de la valeur de a.
Je ne sais pas ce qu'est exactement floor(2*random()), en algobox mais je suppose que floor(x) = partie entière de x, et random() génère simplement aléatoirement un nombre (ce serait d'autant plus joli si ce nombre était compris entre 0 et 1, c'est peut être le cas, surement... je sais pas).
Donc que fais ton algorithme:
il génère N nombres aléatoires a_1,a_2,\ldots,a_N, dont il prends le double (i.e. 2a_1,2a_2,\ldots,2a_N) et inscris dans le vecteur L si le double a une partie entière nulle (auquel le coeff sera -1) ou pas (auquel cas le coeff sera 1).
Par exemple si N=5,
alors on prends 5 nombres au bol
a_1=0.0318,a_2=0.6769,a_3=0.0462a_4=0.0971,a_5=0.8235
On prends le double
2a_1=0.0636,2a_2=1.3538,2a_3=0.0924,2a_4=0.1942,2a_5=1.6470
On regarde la partie entière
[2a_1]=0,[2a_2]=1,[2a_3]=0,[2a_4]=0,[2a_5]=1
On met -1 dans le vecteur L lorsque la partie entière est 0 et 1 sinon, et donc ton algorithme affiche:
L=\left(\begin{array}{c}-1\\1\\-1\\-1\\1 \end{array}\right)
Si les nombres générés sont effectivement entre 0 et 1, tu devrais voir (si la fonction random() sur algobox est bien faite)  qu'il y a à peu près le même nombre de 1 que de -1 dans ton vecteur L particulièrement si N est grand (ça s'appelle le théorème central limite).

Posté par
cocopink
re : Algorithme 13-04-11 à 16:00

Il faut exécuter cet algorithme avec N=10 et N=100 et il n'affiche pas du tout ça

Posté par
Surb
re : Algorithme 13-04-11 à 16:29

ah oui juste je me suis planté dans la boucle, alors J affiche l'état de x à chaque nouvelle génération d'un nombre aléatoire sur lequel on fais +1 si la partie entière est non nulle est -1 si elle est nulle.
Donc dans le cas de l'exemple que je t'ai donné on a
L=\left(\begin{array}{c}-1\\0\\-1\\-2\\-1 \end{array}
et pour N grand tu devrais observer que la dernière composante devrait pas être trop loin de 0.

Posté par
cocopink
re : Algorithme 13-04-11 à 16:55

D'accord mais à quoi sert cet algorithme?

Posté par
Surb
re : Algorithme 13-04-11 à 17:21

réfléchi....
j'ai déjà quasiment tout fait....
(de plus la réponse se trouve implicitement dans ce que j'ai écris précédemment)

Posté par
cocopink
re : Algorithme 13-04-11 à 17:25

Cet algorithme génère aléatoirement un nombre???

Posté par
Surb
re : Algorithme 13-04-11 à 17:29

non, ca c'est la fonction random() qui le fait....
mais tu es sur la bonne voie. Essaie de comprendre pourquoi j'ai dis:

Citation :
et pour N grand tu devrais observer que la dernière composante devrait pas être trop loin de 0.

Posté par
Surb
re : Algorithme 13-04-11 à 17:34

fais des essais avec N=10,50,100,500,1000,5000,10000,...

Posté par
cocopink
re : Algorithme 13-04-11 à 17:45

Il calcule les abscisse finales possibles du robot?

Posté par
Surb
re : Algorithme 13-04-11 à 17:58

quoi? quelle robot? quelle abscisse? Tu n'as pas écris ça dans la donnée.....
on va prendre un truc plus simple alors:
Imagine qu'on ait une pièce et qu'on joue a pile ou face et on note le résultat comme suit:
on commence à zéro et chaque fois que la pièce tombe sur pile on fait +1 chaque fois qu'elle tombe sur face on fait -1.
Donc je commence l'expérience:
1er lancé: pile
le compteur est a 1
2e lancé: pile
le compteur est a 2
3e lancé: pile (on se pose presque la question si la pièce est truquée...)
le compteur est a 3
4e lancé: face
le compteur est a 2
5e lancé: pile
le compteur est a 3
etc....
après le 1000000000000000000000000000000000000000000000000000000e lancé le compteur il devrait être à combien si la pièce n'est pas truquée?

Posté par
cocopink
re : Algorithme 13-04-11 à 18:11

ça dépend non?

Posté par
Surb
re : Algorithme 13-04-11 à 18:14

oui effectivement mais normalement quand on joue a pile ou face il y a autant de chance qu'il y ait pile ou face. Et donc sur un très grand nombre de lancers, ça te paraitrait normal qu'il y ait 99% de pile et 1% de face?

Posté par
cocopink
re : Algorithme 13-04-11 à 18:21

non

Posté par
Surb
re : Algorithme 13-04-11 à 18:24

on est d'accord donc quelle devrait être la proportion de pile et de face?
et donc à combien devrait être le compteur?

Posté par
Surb
re : Algorithme 13-04-11 à 18:25

a peu près, ça ne se passe jamais comme ça mais on suppose qu'on est dans un cas idéal.

Posté par
cocopink
re : Algorithme 13-04-11 à 18:29

50% de pile et 50% de face?

Posté par
Surb
re : Algorithme 13-04-11 à 18:30

exacte! et donc à combien est le compteur???

Posté par
cocopink
re : Algorithme 13-04-11 à 18:32

3 ou2

Posté par
Surb
re : Algorithme 13-04-11 à 18:33

0 même puisqu'il y a autant de pile que de face on fais autant de fois +1 que -1 et donc au final ils s'annulent.... c'est clair pour toi jusqu'ici?

Posté par
cocopink
re : Algorithme 13-04-11 à 18:33

oui

Posté par
Surb
re : Algorithme 13-04-11 à 18:37

parfait, maintenant on va faire le lien avec ton algorithme:
on fais le même jeu mais cette fois au lieu de tirer un pièce on prend un nombre au hasard entre 0 et 1, et on fais +1 au compteur quand le nombre est plus petit que 0.5 et -1 au compteur quand le nombre est plus grand que 0.5
A combien devrait être le compteur quand on fais l'expérience beaucoup beaucoup de fois?

PS:c'est pas très important mais on suppose que le nombre au hasard ne peut pas être 0.5, ça simplifie les chose.

Posté par
cocopink
re : Algorithme 13-04-11 à 18:47

il y a autant de +1 que de -1

Posté par
Surb
re : Algorithme 13-04-11 à 18:49

génial ,
donc maintenant je prends un nombre entre 0 et 1, je fais le double de ce nombre, qu'est-ce qui va faire que le double est plus petit ou plus grand que 1?

Posté par
cocopink
re : Algorithme 13-04-11 à 18:54

Je ne sais pas..  c peut etre le nombre choisi qui va faire que le double est plus petit ou plus grand que 1

Posté par
Surb
re : Algorithme 13-04-11 à 18:56

tout a fait, mais tu peux poser une condition.... du genre:
si le nombre tiré au hasard est [à compléter] alors le double est [à compléter]

Posté par
cocopink
re : Algorithme 13-04-11 à 18:58

d'acccord

Posté par
Surb
re : Algorithme 13-04-11 à 18:59

c-a-d?

Posté par
cocopink
re : Algorithme 13-04-11 à 18:59

????

Posté par
Surb
re : Algorithme 13-04-11 à 19:01

c'est quoi alors la condition?
et maintenant que tu as quasiment toutes les clés, à quoi il sert ton algorithme?
(je te rappelle que les "experiences" qu'on vient de faire étaient dans un cadre parfait, alors que ton ordi il est dans la réalité)

Posté par
cocopink
re : Algorithme 13-04-11 à 19:03

Cet algorithme détermine la probabilité d'un événement?

Posté par
Surb
re : Algorithme 13-04-11 à 19:05

non... c'est quoi la condition sur le nombre tiré au hasard pour que le double soit plus grand que 1?

Posté par
cocopink
re : Algorithme 13-04-11 à 19:09

si le nombre tiré au hasard est plus grand que 0.5 alors le double sera plus grand que 1

Posté par
cocopink
re : Algorithme 13-04-11 à 19:13

c'est ça?

Posté par
Surb
re : Algorithme 13-04-11 à 19:15

ok, on résume:
le compteur est à 0 (x dans ton algo)
1) ton ordi prends un nombre au hasard (a dans ton algo) entre 0 et 1 grâce à la fonction random() il fais le double de ce nombre et prends la partie entière qui est soit 1 si le nombre de base est plus grand que 0.5 soit 0
2) si la partie entière est 1 il fais +1 au compteur si elle vaut 0 il fait -1 au compteur
3) il enregistre l'état du compteur à ce stade dans un vecteur (L dans ton algo)
4) il recommence au point 1)
il fais ça plein de fois, dans un cas idéal ton compteur il est à combien à la fin?

Posté par
Surb
re : Algorithme 13-04-11 à 19:19

(oui c'était bien ça)

Posté par
cocopink
re : Algorithme 13-04-11 à 19:22

12 ou -12

Posté par
Surb
re : Algorithme 13-04-11 à 19:22

pourquoi 12?

Posté par
cocopink
re : Algorithme 13-04-11 à 19:24

quand  j'exécute l'algorithme il affiche comme chiffre maximum 12 ou -12

Posté par
Surb
re : Algorithme 13-04-11 à 19:24

Je te rappelle que dans mon dernier poste, j'ai fais l'hypothèse qu'on est dans un monde parfait, et donc tu peux pas répondre en essayant sur ton ordi.... t'es obligé(e) de réfléchir...

Posté par
cocopink
re : Algorithme 13-04-11 à 19:25

ok

Posté par
Surb
re : Algorithme 13-04-11 à 19:27

(d'ailleurs ne fais pas la même erreur que moi, l'ordi ne réinitialise pas le compteur à chaque fois qu'il recommence au point 1) )

Posté par
cocopink
re : Algorithme 13-04-11 à 19:30

c'est soit +1 ou -1 au compteur non?

Posté par
Surb
re : Algorithme 13-04-11 à 19:32

que veux-tu dire?

Posté par
cocopink
re : Algorithme 13-04-11 à 19:38

ENFAITE J'EN SAIS RIEN

Posté par
cocopink
re : Algorithme 13-04-11 à 19:50

finalement à quoi sert cet algorithme??

1 2 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1730 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !