色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 蒙托卡羅

錢琪琛2年前11瀏覽0評論

Python是一種非常流行的編程語言,它的靈活性和易用性使得它被非常多的人使用。在Python中,有許多強大的庫和模塊可以讓我們輕松地完成各種任務(wù),其中最著名的之一就是蒙特卡羅模擬。

蒙特卡羅模擬是一種經(jīng)典的計算方法,它是通過在隨機生成的樣本中進行多次重復(fù)試驗來得出準(zhǔn)確的數(shù)值。在Python中,我們可以使用NumPy庫和Matplotlib庫來快速地實現(xiàn)蒙特卡羅模擬。

import numpy as np
import matplotlib.pyplot as plt
#定義投擲次數(shù)
N = 500
#定義蒙特卡羅函數(shù)
def monte_carlo_pi(n):
num_inside = 0                        #初始化圓內(nèi)部點的數(shù)目
for i in range(n):
x, y = np.random.rand(2) * 2 - 1  #生成[-1,1]之間的隨機數(shù)
if x ** 2 + y ** 2<= 1:
num_inside += 1
return 4 * num_inside / n
#進行N次重復(fù)試驗
pi_values = [monte_carlo_pi(N) for _ in range(N)]
#繪制圖表
plt.hist(pi_values, bins=20)
plt.title(f"N={N}")
plt.show()

在這段代碼中,我們定義了一個名為monte_carlo_pi的函數(shù),該函數(shù)通過進行多次重復(fù)試驗來估計PI的值。我們在代碼中定義了一個常數(shù)N,表示進行投擲的次數(shù),該次數(shù)越大,結(jié)果越精確。

我們使用NumPy庫中的np.random.rand方法隨機生成點的位置,并將它們映射到[-1,1]之間。如果點在圓內(nèi)部,則將其計入到num_inside變量中。最后我們返回一個給定投擲次數(shù)下的估計PI的值。

在我們完成所有的投擲試驗之后,我們使用Matplotlib庫中的plt.hist方法繪制出結(jié)果。該圖表顯示了估計PI值的分布情況,使用直方圖的形式展示。從圖表中,我們可以看到,隨著投擲次數(shù)的增加,估計PI值的分布趨向于正態(tài)分布。