particules.py

Created by schraf

Created on January 09, 2022

395 Bytes

Exercice proposé sur le groupe Facebook
"Casse-tête, énigmes et paradoxes"

3 particules apparaissent de manière aléatoire sur un disque. Quelle est la probabilité que les 3 soient sur un même demi-disque ? (Le demi disque en question peut être tracé après coup)

Ma chaine Youtube consacrée aux maths et à l’informatique

L’idée est assez simple :

  • Choisir au hasard 3 angles entre 0 et 360 (par ex : 320, 10, 290)
  • Trier par ordre croissant : 10, 290, 320
  • Tester si l’intervalle a une largeur <= 180, si c’est le cas, les 3 points peuvent être mis dans un demi-disque. Ici 320 - 10 = 310 > 180
  • On ajoute 360 au plus petit, soit maintenant 370, 290, 320. En fait le 10° est proche du 320° car 10+360 = 370° est proche de 320.
  • Trier par ordre croissant : 290, 320, 370
  • Cette fois-ci 370 - 290 = 80 <= 180 donc ils peuvent être mis dans un demi-disque


from random import random
from math import sqrt

nbsimul, succes = 10000, 0

for _ in range(nbsimul):
  angles = [360 * random() for _ in range(3)]
  for _ in range(3):
    angles.sort()
    if angles[-1] - angles[0] <= 180: 
      succes += 1 
      break
    else: angles[0] += 360  
e = 1 / sqrt(nbsimul)
p = succes / nbsimul
print("[{:.2%}, {:.2%}]".format(p - e, p + e))