Probabilités, fonction Python

Retrouver tous les sujets résolus.
Céline

Re: Probabilités, fonction Python

Message par Céline » mer. 12 févr. 2020 14:05

bonjour,
il me faut auparavant créer 2 listes ; une pour x et l'autre pour y, afin de connaître l'état successif où se trouve la machine.
pensez-vous qu'il faut faire " x=[0]" et y=[0] en début de programme puis mettre "return x" et "return y" à chaque étape de la boucle du programme ?
Céline
Céline

Re: Probabilités, fonction Python

Message par Céline » mer. 12 févr. 2020 20:02

est-ce correct svp ? :
def moyenne (somme):
return(somme/100)
somme=0
trajetcourant=0
b=trajet()
for i in range (100):
trajetcourant=trajetcourant+b
somme=somme+trajetcourant
print(moyenne(somme/100))

merci, Céline
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: Probabilités, fonction Python

Message par sos-math(21) » mer. 12 févr. 2020 20:26

Bonjour,
ton return est mal placé : il doit intervenir à la fin puisqu'on renvoie la moyenne à la fin du programme.
De plus, ton instruction b=trajet() doit être à l'intérieur de la boucle for, car la fonction trajet est appelée à chaque tour de boucle.
Je te propose une fonction générique qui calcule la moyenne du nombre de déplacements sur n trajets :

Code : Tout sélectionner

def moyenne(n):
    somme = 0
    trajet_courant = 0
    for i in range(n):
        trajet_courant = trajet()
        somme = somme + trajet_courant
    return somme/n

Ensuite, il te restera à l'appeler dans la console

Code : Tout sélectionner

>>> moyenne(100)
10.05
Bonne continuation
Céline

Re: Probabilités, fonction Python

Message par Céline » mer. 12 févr. 2020 20:43

Céline a écrit :
mer. 12 févr. 2020 14:05
bonjour,
il me faut auparavant créer 2 listes ; une pour x et l'autre pour y, afin de connaître l'état successif où se trouve la machine.
pensez-vous qu'il faut faire " x=[0]" et y=[0] en début de programme puis mettre "return x" et "return y" à chaque étape de la boucle du programme ?
Céline
merci, je vais essayer cela. Vous m'aidez vraiment, c'est pour demain ! Pouvez-vous m'indiquer si ce qui est cité ci-dessus est correct ?

merci encore
Céline

Re: Probabilités, fonction Python

Message par Céline » mer. 12 févr. 2020 21:17

par ailleurs, c'est bon pour la moyenne !!! :)
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: Probabilités, fonction Python

Message par sos-math(21) » mer. 12 févr. 2020 21:57

Bonjour,
tu peux créer une liste abscisses et une liste ordonnees.
et tu lui ajoutes la position à chaque fois que celle-ci est modifiée.
Je te fais un exemple avec le renvoi des valeurs :

Code : Tout sélectionner

def trajet_bis():
    machine_x = 0
    machine_y = 0
    nombredeplacements = 0
    abscisses=[0]
    ordonnees=[0]
    while -2<=machine_x<=2 and -2<=machine_y<=2 :
        deplacement = random.randint(1,4)
        if deplacement == 1:
            machine_x = machine_x + 1
            abscisses.append(machine_x)
        if deplacement == 2:
            machine_x = machine_x - 1
            abscisses.append(machine_x)
        if deplacement == 3:
            machine_y = machine_y + 1
            ordonnees.append(machine_y)
        if deplacement == 4:
            machine_y = machine_y - 1
            ordonnees.append(machine_y)
        nombredeplacements =  nombredeplacements + 1
    return nombredeplacements, machine_x, machine_y, abscisses, ordonnees
Bonne continuation

Par exemple, on a un appel :

Code : Tout sélectionner

>>> trajet_bis()
(8, -1, -3, [0, 1, 0, -1], [0, 1, 0, -1, -2, -3])
Céline

Re: Probabilités, fonction Python

Message par Céline » mer. 12 févr. 2020 22:08

merci
j'ai testé cependant voici ce qui est affiché :
Traceback (most recent call last):
File "/tmp/sessions/7a04ccf19ae2c398/main.py", line 34, in <module>
print (moyenne(100))
File "/tmp/sessions/7a04ccf19ae2c398/main.py", line 32, in moyenne
somme = somme + trajet_courant
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

je ne comprends pas car avant les listes, cela marchait ... auriez-vous une petite idée ?
Merci, Céline
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: Probabilités, fonction Python

Message par sos-math(21) » jeu. 13 févr. 2020 07:02

Bonjour,
cela dépend de ce que tu as mis comme résultat envoyé par ta fonction trajet.
Si ta fonction trajet() renvoie plusieurs valeurs, cela correspond à un tuple en python.
Comme tu veux le nombre de déplacements, qui correspond au premier terme de ce tuple, il faut appeler ce premier terme soit trajet()[0].
Le script se corrige comme suit :

Code : Tout sélectionner

def moyenne(n):
    somme = 0
    trajet_courant = 0
    for i in range(n):
        trajet_courant = trajet()[0]
        somme = somme + trajet_courant
    return somme/n
Si tu as encore des problèmes à l'exécution, il faudra que tu me renvoies le script complet.
Bonne continuation
Céline

Re: Probabilités, fonction Python

Message par Céline » sam. 15 févr. 2020 12:05

bonjour, je souhaitais juste vous remercier, vous m'avez beaucoup aidée !
bonne journée !
SoS-Math(33)
Messages : 3480
Enregistré le : ven. 25 nov. 2016 14:24

Re: Probabilités, fonction Python

Message par SoS-Math(33) » sam. 15 févr. 2020 14:40

Merci pour ton message Céline, même si le forum est fait pour aider, c'est toujours plaisant ce genre de retour.
Bonne continuation
A bientôt sur le forum
SoS-math
Répondre