Probabilités, fonction Python
Probabilités, fonction Python
Bonjour,
après de nombreuses heures de recherche je ne parviens pas à faire cet exercice... Il est très important que je le fasse, et j'aimerais beaucoup recevoir de l'aide :)
Voici l'exercice :
Une machine placée à l'origine sur un plan muni d'un repère orthonormé, se déplaçant à chaque seconde en simulant un entier aléatoire entre 1 et 4 de: +1 en abscisse si l'entier est 1,-1 en abscisse si l'entier est 2, +1 en ordonnée si l'entier est 3, et -1 en ordonnée si l'entier est 4.
Aussi, pour (x ; y) les coordonnées du point où se trouve la machine, son déplacement doit s'arrêter si x > 2 ou x < -2 ou y >2 ou y< -2
1/Ecrire une fonction Python "trajet ()" qui simule le trajet de cette machine (du départ à l'arrêt) et renvoyant le nombre de déplacements effectués avant l'arrêt. On stockera les abscisses et ordonnées successives où se trouve la machine dans deux listes "x" et "y" initialisées à x=[0] et y= [0] en début du programme.
2/ écrire un programme appelant 100 fois la fonction "trajet" et calculant la moyenne du nombre de déplacements réalisés sur ces 100 trajets.
En espérant une aide, même minime, de votre part :)
après de nombreuses heures de recherche je ne parviens pas à faire cet exercice... Il est très important que je le fasse, et j'aimerais beaucoup recevoir de l'aide :)
Voici l'exercice :
Une machine placée à l'origine sur un plan muni d'un repère orthonormé, se déplaçant à chaque seconde en simulant un entier aléatoire entre 1 et 4 de: +1 en abscisse si l'entier est 1,-1 en abscisse si l'entier est 2, +1 en ordonnée si l'entier est 3, et -1 en ordonnée si l'entier est 4.
Aussi, pour (x ; y) les coordonnées du point où se trouve la machine, son déplacement doit s'arrêter si x > 2 ou x < -2 ou y >2 ou y< -2
1/Ecrire une fonction Python "trajet ()" qui simule le trajet de cette machine (du départ à l'arrêt) et renvoyant le nombre de déplacements effectués avant l'arrêt. On stockera les abscisses et ordonnées successives où se trouve la machine dans deux listes "x" et "y" initialisées à x=[0] et y= [0] en début du programme.
2/ écrire un programme appelant 100 fois la fonction "trajet" et calculant la moyenne du nombre de déplacements réalisés sur ces 100 trajets.
En espérant une aide, même minime, de votre part :)
-
- Messages : 1859
- Enregistré le : mer. 2 nov. 2011 09:39
Re: Probabilités, fonction Python
Bonjour Céline,
Pas facile de t'aider sans savoir où tu en es dans Python. Je t'ai fait un petit exemple.
Pour l'instant, cette fonction ne fait qu'un seul déplacement (qu'il faut compléter) et ne renvoie pas le nombre de déplacement mais les nouvelles coordonnées de la machine.
Voici une façon de commencer (Tu peux modifier ce code et le tester avec le bouton play):
https://trinket.io/python3/e2009efc07
Il reste beaucoup de choses à compléter. Dis nous où tu bloques et ce qu'il te manque.
Pense à conserver ton script Python à chaque avancée sur un traitement de texte. Aussi, tu peux copier/coller ton code Python dans les messages du forum et le placer entre les balises code (voir le bouton </>). Comme ceci :
Bon courage
Pas facile de t'aider sans savoir où tu en es dans Python. Je t'ai fait un petit exemple.
Pour l'instant, cette fonction ne fait qu'un seul déplacement (qu'il faut compléter) et ne renvoie pas le nombre de déplacement mais les nouvelles coordonnées de la machine.
Voici une façon de commencer (Tu peux modifier ce code et le tester avec le bouton play):
https://trinket.io/python3/e2009efc07
Il reste beaucoup de choses à compléter. Dis nous où tu bloques et ce qu'il te manque.
Pense à conserver ton script Python à chaque avancée sur un traitement de texte. Aussi, tu peux copier/coller ton code Python dans les messages du forum et le placer entre les balises code (voir le bouton </>). Comme ceci :
Code : Tout sélectionner
import random #On importe de quoi simuler des nombres aléatoire
def trajet():
machine_x = 0 #abscisse de la machine
machine_y = 0 #ordonnée de la machine
deplacement = random.randint(1,4) #nombre entier aléatoire entre 1 et 4
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
return (machine_x, machine_y)
Re: Probabilités, fonction Python
merci pour votre réponse! :)
mon niveau en python est assez bon, niveau 1ère je dirais car je sais à peu près comment faire cet exercice (je sais que j'aurais besoin d'utiliser "if" "else" ) mais je ne savais pas par exemple s'il fallait mettre quelque chose dans les parenthèses de "trajet ()" ou comment renvoyer le nombre de déplacements...
je vais encore chercher, merci :)
mon niveau en python est assez bon, niveau 1ère je dirais car je sais à peu près comment faire cet exercice (je sais que j'aurais besoin d'utiliser "if" "else" ) mais je ne savais pas par exemple s'il fallait mettre quelque chose dans les parenthèses de "trajet ()" ou comment renvoyer le nombre de déplacements...
je vais encore chercher, merci :)
Re: Probabilités, fonction Python
re bonjour,
est-ce que pour afficher le nombre de déplacements je peux faire :
def nombredeplacements():
nombredeplacements == 0
if machine_x = machine_x + 1
nombredeplacements == nombredeplacements + 1
if machine_y = machine_y + 1
nombredeplacements == nombredeplacements + 1
?
est-ce que pour afficher le nombre de déplacements je peux faire :
def nombredeplacements():
nombredeplacements == 0
if machine_x = machine_x + 1
nombredeplacements == nombredeplacements + 1
if machine_y = machine_y + 1
nombredeplacements == nombredeplacements + 1
?
-
- Messages : 1859
- Enregistré le : mer. 2 nov. 2011 09:39
Re: Probabilités, fonction Python
Pas besoin d'une autre fonction. Pour l'instant, je te conseille de compléter cette fonction pour un déplacement (4 cas).
Ensuite, il faudra une boucle while pour sortir avec des conditions
Pour initialiser nombredeplacements à 0, il faut un seul = : nombredeplacements = 0
On peut ensuite augmenter nombredeplacements de 1 après chaque tirage de nombre aléatoire
Pour les listes d'abscisses et d'ordonnées, on verra à la fin.
Bon courage
Ensuite, il faudra une boucle while pour sortir avec des conditions
Pour initialiser nombredeplacements à 0, il faut un seul = : nombredeplacements = 0
On peut ensuite augmenter nombredeplacements de 1 après chaque tirage de nombre aléatoire
Pour les listes d'abscisses et d'ordonnées, on verra à la fin.
Code : Tout sélectionner
import random #On importe de quoi simuler des nombres aléatoire
def trajet():
machine_x = 0 #abscisse de la machine
machine_y = 0 #ordonnée de la machine
nombredeplacements = 0 #Initialisé à zéro
#Ici il va falloir une boucle while pour sortir avec des conditions
deplacement = random.randint(1,4) #nombre entier aléatoire entre 1 et 4
nombredeplacements = nombredeplacements + 1 #Ici on va augmenter le ce nombre
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
#Fin de la boucle while
return (machine_x, machine_y)#A la fin, il faudra renvoyer nombredeplacements à la place des coordonnées
Re: Probabilités, fonction Python
SoS-Math(25) a écrit : ↑sam. 8 févr. 2020 14:44Pour l'instant, je te conseille de compléter cette fonction pour un déplacement (4 cas).
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
if machine_x < 2:
nombredeplacements = nombredeplacements + 1
if machine_x > -2:
nombredeplacements = nombredeplacements + 1
if machine_y < 2:
nombredeplacements = nombredeplacements + 1
if machine_y > -2:
nombredeplacements = nombredeplacements + 1
return (nombredeplacements)
je ne sais pas où utiliser "while", j'ai l'impression que ce que j'ai fait ci-dessus n'est pas correct, qu'en pensez-vous ? :/
Re: Probabilités, fonction Python
je ne comprends pas car il y a 3h j'ai envoyé un message mais il n'apparaît pas.. j'avais écrit :
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
if machine_x < 2:
nombredeplacements = nombredeplacements + 1
if machine_x > -2:
nombredeplacements = nombredeplacements + 1
if machine_y < 2:
nombredeplacements = nombredeplacements + 1
if machine_y > -2:
nombredeplacements = nombredeplacements + 1
return (nombredeplacements)
est-ce qu'à votre avis c'est correct ?
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
if machine_x < 2:
nombredeplacements = nombredeplacements + 1
if machine_x > -2:
nombredeplacements = nombredeplacements + 1
if machine_y < 2:
nombredeplacements = nombredeplacements + 1
if machine_y > -2:
nombredeplacements = nombredeplacements + 1
return (nombredeplacements)
est-ce qu'à votre avis c'est correct ?
-
- Messages : 1859
- Enregistré le : mer. 2 nov. 2011 09:39
Re: Probabilités, fonction Python
Bonsoir Céline,
Il faut qu'un modérateur voit et valide ton message pour qu'il apparaisse.
Pour le nombre de déplacement, il vaut attendre de créer complétement la boucle.
Je t'aide un peu. Tu en es là :
Je te propose une boucle while dont les conditions sont à compléter. "while" peut se traduire par "tant que". Il te reste deux conditions à ajouter sur cette ligne. Bon courage
Il faut qu'un modérateur voit et valide ton message pour qu'il apparaisse.
Pour le nombre de déplacement, il vaut attendre de créer complétement la boucle.
Je t'aide un peu. Tu en es là :
Code : Tout sélectionner
import random
def trajet():
machine_x = 0
machine_y = 0
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
return (machine_x, machine_y)
Code : Tout sélectionner
import random
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
while machine_x < 2 and machine_x > -2:
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
return (machine_x, machine_y)
Re: Probabilités, fonction Python
Bonjour, merci pour votre aide, j'ai complété les conditions restantes :
je vais essayer de continuer, le temps que ma réponse soit postée :)
je vais essayer de continuer, le temps que ma réponse soit postée :)
Code : Tout sélectionner
import random
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
while machine_x < 2 and machine_x > -2 and machine_y < 2 and > -2 :
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
return (machine_x, machine_y)
Re: Probabilités, fonction Python
Tout compte fait je ne sais pas comment continuer
-
- Messages : 10353
- Enregistré le : lun. 30 août 2010 11:15
Re: Probabilités, fonction Python
Bonjour,
pour ta condition d'arrêt, il y aura un message d'erreur avec
De plus, il faut des inégalités larges car cela s'arrête dès que \(x>2\) ou \(x<-2\)...
tu peux grouper tes tests en mettant -2<=machine_x<=2 and -2<=machine_y<=2.
Ensuite, la fonction trajet doit renvoyer un nombre de déplacements, donc tu crées un compteur nombredeplacements initialisé à 0 et qui augmente de 1 à chaque tour de boucle :
Cela pourrait donc donner :
Bonne continuation
pour ta condition d'arrêt, il y aura un message d'erreur avec
Code : Tout sélectionner
and > -2 :
tu peux grouper tes tests en mettant -2<=machine_x<=2 and -2<=machine_y<=2.
Ensuite, la fonction trajet doit renvoyer un nombre de déplacements, donc tu crées un compteur nombredeplacements initialisé à 0 et qui augmente de 1 à chaque tour de boucle :
Cela pourrait donc donner :
Code : Tout sélectionner
import random
def trajet():
machine_x = 0
machine_y = 0
nombredeplacements = 0
while -2<=machine_x<=2 and -2<=machine_y<=2 :
deplacement = random.randint(1,4)
if deplacement == 1:
machine_x = machine_x + 1
if deplacement == 2:
machine_x = machine_x - 1
if deplacement == 3:
machine_y = machine_y + 1
if deplacement == 4:
machine_y = machine_y - 1
nombredeplacements = nombredeplacements + 1
return nombredeplacements
Re: Probabilités, fonction Python
bonjour,
j'ai testé le programme hier plusieurs fois cependant il n'affiche rien ... j'ai essayé de le modifier un peu mais sans succès ...
merci pour vos réponses,
Céline
j'ai testé le programme hier plusieurs fois cependant il n'affiche rien ... j'ai essayé de le modifier un peu mais sans succès ...
merci pour vos réponses,
Céline
-
- Messages : 10353
- Enregistré le : lun. 30 août 2010 11:15
Re: Probabilités, fonction Python
Bonjour,
le code que je t'ai envoyé (et celui de sos-math(25) aussi d'ailleurs) correspond à une fonction Python : c'est un ensemble d'instructions "emballées" dans un "bloc" donc elle ne produit rien si on ne la sollicite pas !
Il faut donc faire un appel de la fonction, soit en tapant trajet() dans la console, soit en demandant un affichage print(trajet()) dans le script :
https://repl.it/repls/ConstantWorriedResearch
Bonne continuation
le code que je t'ai envoyé (et celui de sos-math(25) aussi d'ailleurs) correspond à une fonction Python : c'est un ensemble d'instructions "emballées" dans un "bloc" donc elle ne produit rien si on ne la sollicite pas !
Il faut donc faire un appel de la fonction, soit en tapant trajet() dans la console, soit en demandant un affichage print(trajet()) dans le script :
https://repl.it/repls/ConstantWorriedResearch
Bonne continuation
Re: Probabilités, fonction Python
bonsoir,
d'accord merci beaucoup, je vais continuer ...
d'accord merci beaucoup, je vais continuer ...
-
- Messages : 10353
- Enregistré le : lun. 30 août 2010 11:15
Re: Probabilités, fonction Python
Bonjour,
tu peux désormais écrire une fonction moyenne qui prend en paramètre un nombre n et qui renvoie la moyenne du nombre de déplacements pour n trajets. Cela peut se construire ainsi :
tu crées une variable somme qui va accumuler successivement le nombre de déplacement pour chaque trajet ; somme est initialisée à 0
Tu crées une variable trajet_courant qui va recueillir le nombre de déplacements du trajet : trajet_courant est initialisé à 0.
tu crées une boucle for qui va tourner n fois (for i in range(n)) :
tu simules un trajet et tu récupères son nombre de déplacement en affectant à trajet_courant la valeur trajet()
tu ajoutes cette valeur à la somme
enfin, à l'issue de la boucle, tu renvoies la variable somme/n pour faire une moyenne.
Des appels successifs de moyenne(100) renvoient des valeurs autour de 10 (entre 8 et 12, mais souvent aux alentours de 10).
Bonne continuation
tu peux désormais écrire une fonction moyenne qui prend en paramètre un nombre n et qui renvoie la moyenne du nombre de déplacements pour n trajets. Cela peut se construire ainsi :
tu crées une variable somme qui va accumuler successivement le nombre de déplacement pour chaque trajet ; somme est initialisée à 0
Tu crées une variable trajet_courant qui va recueillir le nombre de déplacements du trajet : trajet_courant est initialisé à 0.
tu crées une boucle for qui va tourner n fois (for i in range(n)) :
tu simules un trajet et tu récupères son nombre de déplacement en affectant à trajet_courant la valeur trajet()
tu ajoutes cette valeur à la somme
enfin, à l'issue de la boucle, tu renvoies la variable somme/n pour faire une moyenne.
Des appels successifs de moyenne(100) renvoient des valeurs autour de 10 (entre 8 et 12, mais souvent aux alentours de 10).
Bonne continuation