Páginas

domingo, 13 de junio de 2021

Maquina de Galton en Python

 Podemos ver una entrada que habla sobre el tema desarrollada en Excel.

Máquina de Galton en Excel

En esta ocasión vamos a crear un procedimiento en Python.


import numpy as np
import matplotlib.pyplot as plt
from random import randint
levels = int(input("How many levels do you want?(min 1/ 20 by default) ") or 20)
if levels >= 1:
  lanes = [0]*(levels)
else:
  print("The value of levels can't be lower than 1.")
  exit()
for h in range((levels)**2*100):
  stored = -1
  for j in range(levels):
    stored += randint(0, 1)
  lanes[stored] += 1
print((levels)**2*100, "balls were used in totall")
print(lanes)
X = np.arange(-((len(lanes)/2)-.5), (len(lanes)/2)+.5)
plt.suptitle('Galton Board')
plt.bar(X + 0.00, lanes, width=0.25)
plt.show()
plt.savefig("BellCurve.png")

La clave del algoritmo está en la línea:

stored += randint(0, 1)

Esta línea lo que hace es añadir un 1 o un 0 con una probabilidad de ½. Esto representa lo que hacen las bolas al tropezar con uno de los pivotes, donde pueden ir a la derecha o a la izquierda con una probabilidad del 50%. Si una bola baja 10 niveles y va la derecha en seis ocasiones y a la izquierda en cuatro ocasiones, el valor de la variable stored sería 6.

No hay comentarios:

Publicar un comentario