Metodo de Montecarlo Python
python
En este script hecho en python calcularémos el valor aproximado de la constante PI usando el método de Montecarlo abajo les dejo el código comentado.
Si tienen una duda dejarla en los comentarios.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import random def dardos(n=1000): #Contador k = 0 #Iteramos en el rango n for i in range(n): #generamos los números aleatorios x = random.random() y = random.random() #Por la ecuación del círculo verificamos que el dardo este adentro if (x ** 2 + y ** 2 <= 1): # Si cumple la condicion aumentamos en 1 k = k + 1 #para calcular aprox PI = 4 * float(k) / n #retornamos el numero de dardos que quedaron dentro del circulo return (4 * float(k) / n) #Mandamos a llamar la función dardos print (dardos()) |
Comentarios Facebook
7 Comments
Este código tiene errores, ejemplo: no está definida la variable i usada en » for i in range…», salvando eso, el programa devuelve 4.0 siempre…
Hola Dubely , gracias por avisarme del error checare el script y actualizaré el post vale , gracias otra vez y saludos desde México. 🙂
import random
print
print «este programa le indicara un valor aproximado de pi por el metodo montecarlo»
print
print «ingrese un numero natural n que indicara el numero de veces a iterar el proceso»
print
n=input(«n = «)
print
i=0.0
j=0.0
while j<=n:
x=random.random()
y=random.random()
if x**2+y**2<=1:
i=i+1
j=j+1
print "un valor aproximado de pi es", (i/j)*4
print
print "gracias por usar este programa"
print
En el comentario anterior (código), falta la indentación correspondiente al «while» y al «if», no me salieron cuando copié y pegué el código del archivo original .py que había hecho para probar el programa.
Hola, estoy tratando de resolver este ejercicio según el método pero aun no lo consigo… me podrían ayudar por favor:
Dos canicas son extraídas de una bolsa que contiene 11 canicas rojas, 10 blancas, y 9 púrpuras. Cual es la probabilidad de sacar:
-Roja de primero, púrpura de segundo.
-Una roja y una purpura.
-Ninguna blanca.
-El mismo color.
amigo me ayudarías necesito ese mismo ejercicio pero en DECV++ por favor me puedes mandar el código. gracias.
no se C++ Pero es facil pasarlo a cualquer lenguaje leelo como pseudo código
saludos.