Last active
February 6, 2023 15:00
-
-
Save fbidu/26171152964d18e77d49 to your computer and use it in GitHub Desktop.
Monte Carlo Pi em Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- encoding: latin-1 -* | |
# Importando a biblioteca de matematica | |
import math | |
# Importando a biblioteca de aleatoriedade | |
import random | |
# Inicialmente, não temos nenhum ponto 'dentro' do circulo | |
pontos_no_circulo = 0 | |
# Não sorteamos também nenhum ponto | |
pontos_sorteados = 0 | |
# Sortearemos então, 10.000 pontos | |
for i in range(10000): | |
# Incrementamos o numero de pontos sorteados | |
pontos_sorteados = pontos_sorteados + 1.0 | |
# Sorteando dois pontos x e y | |
# A função uniform sorteia numeros com casas decimais | |
x = random.uniform(-1, 1) | |
y = random.uniform(-1, 1) | |
# Calculando a distancia do ponto x, y com a origem | |
# A função 'hypot' da biblioteca math calcula a distancia euclidiana | |
distancia = math.hypot(x, y) | |
# Verificamos, entao, se a distancia encontrada | |
# é compatível com nosso criterio de aceitação (<= 1) | |
if distancia <= 1: | |
pontos_no_circulo = pontos_no_circulo + 1.0 | |
# Finalmente, depois de sorteados os pontos, calculamos a razão | |
razao_entre_total = pontos_no_circulo / pontos_sorteados | |
# A estimativa de pi vai ser 4 vezes esse valor | |
pi_estimado = 4 * razao_entre_total | |
# Imprimimos a estimativa | |
print(pi_estimado) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Metodologia interessante. Teoria de Monte Carlo é muito interessante.