Pi greco > Metodo Monte Carlo

Vedi la discussione

Web VPython 3.2
#from vpython import *
  
g = graph(fast=False,
          width= 640, height=640,
          xmin =-0.1, xmax  =1.1,
          ymin =-0.1, ymax  =1.1)
  
g_puntiIN  = gdots(color=color.red , radius=1)
g_puntiOUT = gdots(color=color.blue, radius=1)
  
BLOCCO  = 999
CONTA   = 0
CONTAIN = 0
 
while(True):
    rate(2)
    
    puntiIN  = []
    puntiOUT = []
    for _ in range(BLOCCO):
        x = random()
        y = random()
        if(x**2 + y**2 <= 1):            
            puntiIN.append([x, y])
            CONTAIN += 1
        else:
            puntiOUT.append([x, y])
    
    g_puntiIN.plot(puntiIN)
    g_puntiOUT.plot(puntiOUT)
    
    CONTA   += BLOCCO
    PIGRECO  = 4 * CONTAIN / CONTA
    g.title  = f"Pi greco = {PIGRECO:.6}, punti = {CONTA}"

Osserva

  1. CONTA è il numero totale di punti
  2. CONTAIN è il numero totale di punti caduti all’interno del cerchio
  3. Due volte al secondo viene aggiunto al grafico un blocco di 999 punti e viene aggiornato il titolo con il nuovo valore approssimato di pi greco

Prova a cambiare

  1. le dimensioni della finestra grafica, width e height
  2. il numero di nuovi punti, BLOCCO
  3. il numero di blocchi al secondo, rate(…)

Lascia un commento