Wir beschreiben hier , wie das Voting-Buffon-Nadelproblem verwendet wird, um π \ pi zu schätzenπ , lassen Sie uns eine andere Methode einführen, die im Wesentlichen dieselbe ist und die Monte-Carlo-Methode verwendet.
Wie in der Abbildung gezeigt, beträgt eine zufällige Seitenlänge 1 1Wirfnnin das Quadrat von 1n Bohnen, nimm an, es gibtkkk fiel auf1 4 \ frac {1} {4}41Im Einheitskreis der rote Punkt in der Abbildung. Dann ist gemäß der geometrischen Wahrscheinlichkeit kn = π 4 1 \ frac {k} {n} = \ frac {\ frac {\ pi} {4}} {1}nk=14Fr..Somit ist π = 4 kn \ pi = \ frac {4k} {n}Pi=n4 k。
In Python implementiert:
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))
Ausgabe: 3.1424
Das Ausgabeergebnis ist viel schlechter als das bekannte 3.1415926, da wir nur 10.000 Experimente simuliert haben und die Anzahl der Experimente erhöht werden kann, um den Fehler zu reduzieren