El segundo método para estimar π con python

 Nosotros aquí se describe cómo utilizar el problema voto aguja de Buffon para calcular π \ piπ , introduzcamos otro método, que es esencialmente el mismo, utilizando el método Monte Carlo.

 Como se muestra en la figura, una longitud de lado aleatoria es 1 1Lanzarnnen el cuadrado de 1n frijoles, supongamos que haykkk cayó en1 4 \ frac {1} {4}41En el círculo unitario, el punto rojo en la figura. Luego, de acuerdo con la probabilidad geométrica, kn = π 4 1 \ frac {k} {n} = \ frac {\ frac {\ pi} {4}} {1}nortek=14P., Por lo tanto, π = 4 kn \ pi = \ frac {4k} {n}Pi=norte4 k
Inserte la descripción de la imagen aquí

Implementado en Python:

import numpy as np

def get_pi(n):
    """

    :param n: 实验次数
    :return: π的估计值
    """
    #获得n个服从均匀分布U(0, 1)的随机数X, Y
    X = np.random.uniform(0, 1, n)
    Y = np.random.uniform(0, 1, n)
    #实验成功的次数,用向量形式实现,比用for循环要快的多,特别是n很大的时候
    k = np.sum(X ** 2 + Y ** 2 <= 1)
    #得到π的估计并返回
    pi = 4 * k / n
    return pi

print(get_pi(10000))

Salida: 3.1424

 El resultado de salida es mucho peor que el conocido 3.1415926, porque solo simulamos 10,000 experimentos, y el número de experimentos se puede aumentar para reducir el error.

Supongo que te gusta

Origin blog.csdn.net/TSzero/article/details/111928172
Recomendado
Clasificación