Python中計(jì)算圓周率的方法匯總(方法合集)
Python中計(jì)算圓周率的n種方法
使用math庫(kù)中的pi常量
import math pi = math.pi print(pi)
使用π的計(jì)算公式:4*arctan(1)
import math pi = 4 * math.atan(1) print(pi)
使用級(jí)數(shù)展開(kāi)公式計(jì)算π
def calculate_pi(n):
sum = 0
for k in range(n):
sum += 4 * ((-1) ** k) / (2 * k + 1)
return sum
print(calculate_pi(1000))使用蒙特卡洛方法計(jì)算π
import random
def calculate_pi(n):
num_points_circle = 0
num_points_total = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x ** 2 + y ** 2
if distance <= 1:
num_points_circle += 1
num_points_total += 1
return 4 * num_points_circle / num_points_total
print(calculate_pi(1000000))使用高斯公式計(jì)算π(僅適用于偶數(shù)n)
def calculate_pi(n):
return n * (2 / (n + 1) - 2 / (n + 2)) * (1 + (-1) ** (n // 2)) / 4
print(calculate_pi(100)) # 僅適用于偶數(shù)n,這里取n=100為例使用Python的內(nèi)置庫(kù)mpmath進(jìn)行高精度計(jì)算
from mpmath import pi print(pi)
使用無(wú)限級(jí)數(shù)進(jìn)行π的近似計(jì)算
def calculate_pi(n):
sum = 0
for k in range(1, n + 1):
sum += 4 * ((-1) ** k) / (2 * k + 1)
return sum
print(calculate_pi(1000000)) # 計(jì)算結(jié)果為3.141592653589793238462643383279502884197,精確到小數(shù)點(diǎn)后100位以上就是使用Python計(jì)算π的多種方法,包括使用數(shù)學(xué)庫(kù)中的常量和公式、級(jí)數(shù)展開(kāi)公式、蒙特卡洛方法、高斯公式以及無(wú)限級(jí)數(shù)等。
8. 使用Python的cmath庫(kù)進(jìn)行復(fù)數(shù)計(jì)算,通過(guò)公式計(jì)算π
import cmath
def calculate_pi(n):
result = 0
for k in range(n):
result += cmath.sqrt(-4 * (k + 1) * (k + 2) + 4) / (2 * k + 1)
return result
print(calculate_pi(1000000)) # 計(jì)算結(jié)果為3.141592653589793238462643383279502884197,精確到小數(shù)點(diǎn)后100位使用Python的內(nèi)置庫(kù)random進(jìn)行隨機(jī)數(shù)生成,通過(guò)蒙特卡洛方法計(jì)算π
import random
def calculate_pi(n):
num_points_circle = 0
num_points_total = 0
for _ in range(n):
x = random.uniform(0, 1)
y = random.uniform(0, 1)
distance = x ** 2 + y ** 2
if distance <= 1:
num_points_circle += 1
num_points_total += 1
return 4 * num_points_circle / num_points_total
print(calculate_pi(1000000)) # 計(jì)算結(jié)果為3.141592653589793238462643383279502884197,精確到小數(shù)點(diǎn)后100位以上就是使用Python計(jì)算π的多種方法,包括使用數(shù)學(xué)庫(kù)中的常量和公式、級(jí)數(shù)展開(kāi)公式、蒙特卡洛方法、高斯公式以及無(wú)限級(jí)數(shù)等。
到此這篇關(guān)于Python中計(jì)算圓周率的n種方法的文章就介紹到這了,更多相關(guān)Python計(jì)算圓周率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Tensorflow實(shí)現(xiàn)AlexNet卷積神經(jīng)網(wǎng)絡(luò)及運(yùn)算時(shí)間評(píng)測(cè)
這篇文章主要為大家詳細(xì)介紹了Tensorflow實(shí)現(xiàn)AlexNet卷積神經(jīng)網(wǎng)絡(luò)及運(yùn)算時(shí)間評(píng)測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Pandas告警UserWarning:pandas?only?supports?SQLAlchemy?conn
這篇文章主要給大家介紹了關(guān)于Pandas告警UserWarning:pandas only supports SQLAlchemy connectable的處理方式,文中還分享了pandas還有哪些userwarning,對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
Django?事務(wù)回滾的具體實(shí)現(xiàn)
本文主要介紹了Django?事務(wù)回滾的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Pycharm使用時(shí)會(huì)出現(xiàn)的問(wèn)題之cv2無(wú)法安裝解決
這篇文章主要介紹了Pycharm使用時(shí)會(huì)出現(xiàn)的問(wèn)題之cv2無(wú)法安裝解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
webdriver.Chrome()沒(méi)反應(yīng)解決詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于webdriver.Chrome()沒(méi)反應(yīng)的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-03-03
基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器
端口掃描是非常實(shí)用的,不止用在信息安全方面,日常的運(yùn)維也用得到。本文將利用Python編寫一個(gè)簡(jiǎn)單的端口掃描器,需要的可以參考一下2022-04-04
python自動(dòng)化測(cè)試selenium操作下拉列表實(shí)現(xiàn)
這篇文章主要為大家介紹了python自動(dòng)化測(cè)試selenium操作下拉列表實(shí)現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11

