Bonsoir
Je vous propose l'exercice suivant :
Un collecteur parcourt en boucle trois étapes A, B, C, séparées par 30 km, 50 km et 140 km. Il part de A et ne s'arrête qu'aux étapes. À chaque passage, il collecte :
En A : 2 objets avec probabilité 4/7, sinon 1 objet.
En B : 2 objets avec probabilité 2/3, sinon 3 objets.
En C : 3 objets avec probabilité 7/12, sinon 6 objets.
Il poursuit jusqu'à ce que la distance totale parcourue dépasse 1000 km.
Calculer la valeur moyenne du nombre total d'objets collectés lorsque la distance dépasse 1000 km.
Écrire un algorithme qui simule l'expérience et vérifie le résultat théorique.
...j'y connais rien en python , car je programme en vba , voici mon code :
Sub ca_tourne()
Dim p, c, d, e, q As Double
Randomize
t = Array(30, 50, 140) 'parcours d'un collecteur sur un cercle contenant 3 etapes A, B et C séparées de 30,50 et 140 kms
e = 0
q = 0
Do
e = e + 1
i = 0 ' compteur modulo sur le trajet circulaire
c = 0 'compte le cumul des objects collectés
d = 0 ' compte le cumul de distance parcourue
'distribution des objets :départ au point A
Do
Select Case i Mod 3
Case Is = 0
p = Rnd
If p < 4 / 7 Then
c = c + 2 'collecte 2 objets
Else
c = c + 1 'sinon collecte 1 objet
End If
d = d + t(i Mod 3)
Case Is = 1
p = Rnd
If p < 2 / 3 Then
c = c + 2
Else
c = c + 3
End If
d = d + t(i Mod 3)
Case Is = 2
p = Rnd
If p < 7 / 12 Then
c = c + 3
Else
c = c + 6
End If
d = d + t(i Mod 3)
End Select
i = i + 1
Loop Until d > 1000
'fin de la distribution
q = q + c
Loop Until e = 10000
Debug.Print q / e ' retourne 40,77 objets collectés quand le cumul de distance depasse 1000 km
End SubBonsoir
Voici un petit code compact
Cliquez pour afficher
Cliquez pour afficherJ'ai oublié un détail crucial dans mon code, qui finalement n'a aucune incidence sur le résultat. Il faut sortir de la boucle dès que la distance parcourue dépasse 1000, et ne pas attendre d'avoir forcément réalisé le cycle A->B->C en entier. Ca n'a aucune incidence puisque la distance 1000 est dépassée juste après être passé en C.
La boucle deviendrait alors
Cliquez pour afficherTout dépend du départ:
Nous sommes d'accord qu'en partant de A ,la première collecte est en B
Depuis le début ,je stoppais à 1000 alors que vous allez à 1100
Dans ce cas,voici mon résultat définitif


On arrive à 960 km en C ok . Par quel miracle arrive -t- on à 1000 km?
De plus ,je me demande pourquoi mon résultat est exactement le tien?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :