Bonjour,
Je n'ai jamais réellement eu de cours sur Python et je ne comprends pas cet exercice, merci d'avance pour votre aide.
(Marche aléatoire)
Un kangourou se trouve en un point d'une route déserte d'Australie occidentale.
À chaque seconde, il saute d'un mètre vers l'avant ou d'un mètre vers l'arrière avec la
même probabilité.
1. Recopier et compléter la fonctionmille_sauts ci-dessous qui simule le déplacement du
kangourou et qui renvoie la position du kangourou après avoir effectué mille sauts.
from random import random
def mille_sauts():
position=0
for i ... :
if ... :
position=position+1
else:
position=position-1
return position
2. Exécuter la fonction mille_sauts plusieurs fois.
Quelle est la plus grande valeur renvoyée ?
3. En utilisant la fonction précédente, écrire le script d'une fonction cent_metres qui si-
mule n expériences de mille sauts et qui renvoie le nombre de fois où le kangourou a
avancé de plus de 100 mètres à la fin des mille sauts lors de ces n expériences.
4. Exécuter la fonction cent_metres pour n = 10 000. Commenter.
Salut,
tu sais ce que représente le for etc... ?
le principe c'est de faire 1000 sauts d'où la boucle
après on va générer des proba et regarder si, par exemple, la proba génerée est plus grande que 0.5 et avancer dans ce cas
Bonjour,
ce que doit faire l'algorithme "en français" à la seule définition de la façon de sauter du kangourou :
répéter 1000 fois
si un nombre aléatoire est ...
alors avancer de 1
sinon
reculer de 1
quand c'est fini donner la position finale
from random import random
def mille_sauts():
position=0
for i ... :
if ... :
position=position+1
else:
position=position-1
return position
Salut,
D'accord je comprends mieux
Du coup pour le for il faut mettre 999 qui correspond au nombre de sauts restants ?
Et en dessous if random < 0,5 ?
for i 999 ça ne veut rien dire
je t'avais conseillé d'aller lire la doc de Python ! l'as tu fait ?
(pas tout !!, ce qui concerne for et random et ce dont il est question dans ces articles là, comme range(...))
for variable in liste
exécute la boucle avec la variable qui prend successivement toutes les valeurs de la liste
donc ici il faut créer une liste de 1000 nombres 1, 2, ... 1000
ou bien 0, 1, ... 999
cela se fait par l'instruction range( ...)
for i in range(....)
idem voir la doc de range(...)
range(1000) génère 1000 nombres de 0 à 999
et i prendra successivement chacune de ces valeurs
de sorte que la boucle sera effectuée 1000 fois faisant faire 1000 sauts au kangourou
(y pas de "'il en reste ..." on effectue1000 sauts point barre)
donc ce sera au final :
for i in range(1000) :
pour random il s'agit d'une fonction (lire la doc disais-je)
cela s'écrit random()
donc
if random() < 0.5 :
(ne pas oublier les deux points en fin de la ligne if et de la ligne for, ils font partie de la syntaxe)
J'ai exécuté le programme et 43 s'est affiché,
Est-ce que plusieurs valeurs différentes peuvent être affichées après l'execution dun programme ?
Ps: j'ai lu une documentation sur python sur les points essentiels de l'exercice
Est-ce que plusieurs valeurs différentes peuvent être affichées
bien sur puisque c'est aléatoire
ça peut prendre toutes les valeurs entre -1000 (s'il ne fait que reculer tout le temps) et +1000 (s'il ne fait que avancer tout le temps)
même si ces valeurs extrêmes ne seront en pratique jamais obtenues
c'est comme tirer 1000 fois de suite à pile ou face, et obtenir 1000 fois pile
rien ne l'empêche ... (!!)
c'est pour ça que la question suivante demande de relancer plusieurs fois le programme et de noter les valeurs obtenues, en particulier la valeur maximale obtenue lors de cette campagne d'essais
(chacun obtiendra une valeur à priori différente ...)
et que dans la question encore suivante on demande d'automatiser ce processus en créant un programme qui lance cette fonction mille_sauts() plusieurs fois, dans une boucle.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :