import random

# Tamanhos das amostras para simulação
m = [10, 50, 100, 250, 500, 1000, 1500, 5000, 10000, 15000, 50000, 100000]

simula_pi = dict()
for n in m:
   ind = []  # True se o ponto está na círculo, False caso contrário
   for _ in range(n):
      x = random.uniform(-1, 1)  # Eixo x da coordenada
      y = random.uniform(-1, 1)  # Eixo y da coordenada      
      ind.append((x**2 + y**2) <= 1)  # True ou False
   
   simula_pi[n] = ind

print("Tamanho\t\tE[I]\t\tPi")
print("-------\t\t-------\t\t-------")
for key in m:
   e_ind = sum(simula_pi[key])/len(simula_pi[key])  # E[I]
   pi = 4 * e_ind  # Valor aproximado de Pi para a amostra
   print(str(key).ljust(12) + str(round(e_ind, 5)).ljust(12) + str(round(pi, 5)))