Un problema de ciencia computacional.
El día de hoy me crucé con un problema bastante interesante que dice lo siguiente:
Dada una función cuya salida son números aleatorios entre 0 y 1, hallar el valor de pi.
Antes de suponer que ambas proposiciones son totalmente antagónicas, es bueno retomar unos conceptos básicos acerca de pi. Sabemos que el número pi expresa una relación entre el diametro y la longitud de una circunferenci tal como dice la siguiente expresión.
De igual manera usando la apotema como el radio, para un hexagono de lado 1 nos da un valor de 3.45000000001 y para un octógono 3.32.
Sabiendo esto, reformulemos el problema de la siguiente manera:
Teniendo un circulo de radio 1 inscrito en un cuadrado de lado 2, calcula pi.
Tenemos las siguientes dos fórmulas para el área del cuadrado y del circulo
Regresando al problema original, la función generadora de números aleatorios puede ser llamado dos veces, pudiendo así simular puntos en un plano cartesiano y los puntos dentro del circulo pueden ser entendidos como el área del circulo. Con esta interpretación quiero decir que
Dónde Pc es la cantidad de puntos dentro del circulo y Ps la cantidad de puntos dentro del cuadrado, luego
Y ésta es la ecuación que usaremos para calcular pi.
Ahora, para determinar la si un punto está dentro del circulo basta con verificar que la distancia del origen al punto sea menor que 1.
Entre más grande sea el número de iteraciones, más acertado será el resultado.
Comentarios
Publicar un comentario