欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python計算圓周率的5種方法

 更新時間:2023年07月03日 09:49:31   作者:NDWJL  
這篇文章主要給大家介紹了關(guān)于python計算圓周率的5種方法,圓周率(Pi)是圓的周長與直徑的比值,一般用希臘字母π表示,是一個在數(shù)學(xué)及物理學(xué)中普遍存在的數(shù)學(xué)常數(shù),需要的朋友可以參考下

最近一段時間在學(xué)習(xí)python算法,今天分享5種python計算圓周率的方法:

1.割圓法,2.無窮級數(shù)法, 3.蒙特卡洛法,4 .梅欽法,5. 拉馬努金法

題目來自頭歌習(xí)題,希望能幫到大家。代碼如下:

1.割圓法

'''
編程實現(xiàn)割圓法計算圓周率,并輸出分割不同次數(shù)時邊數(shù)、圓周率值以及計算所得圓周率值與math庫中的圓周率值的偏差。
'''
import math
def cutting_circle(n):      # n為分割次數(shù)
    """接收表示分割次數(shù)的整數(shù)n為參數(shù),計算分割n次時正多邊形的邊數(shù)和圓周率值,返回邊數(shù)和圓周率值"""
    side_length = 1  # 初始邊長
    edges = 6  # 初始邊數(shù)
    #######################Begin############################
    # 補充你的代碼
    def length(x):
        h = math.sqrt(1-(x /2)**2)
        return math.sqrt((x /2)**2 + (1-h)**2)
    for i in range(n):
        side_length = length(side_length)
        edges *=2
        pi = side_length*edges/2
    ########################End###########################
    return edges, pi
if __name__ == '__main__':
    times = int(input())          # 割圓次數(shù)
    edges, pi =cutting_circle(times) #調(diào)用函數(shù)返回值
    #######################Begin############################
    # 補充你的代碼
    print(f'分割{times}次,邊數(shù)為{edges},圓周率為{pi:.6f}')
    print(f'math庫中的圓周率常量值為{math.pi:.6f}')                               # 圓周率
    ########################End###########################

2.無窮級數(shù)法

'''
使用無窮級數(shù)這個公式計算π值,輸入一個小數(shù)作為閾值,當(dāng)最后一項的絕對值小于給定閾值時停止計算并輸出得到的π值
'''
def leibniz_of_pi(error):
    """接收用戶輸入的浮點數(shù)閾值為參數(shù),返回圓周率值"""
    # ===================Begin====================================
    # 補充你的代碼
    a = 1
    b = 1
    sum = 0
    while 1/ b > error:
        if a % 2 != 0:
            sum += 1 / b
        else:
            sum -=  1/ b
        a += 1
        b += 2
    pi = sum*4
    return pi
    # =====================End==================================
if __name__ == '__main__':
    threshold = float(input())
    print("{:.8f}".format(leibniz_of_pi(threshold)))  # 保留小數(shù)點后八位

3.蒙特卡洛法

import random
def monte_carlo_pi(num):
    """接收正整數(shù)為參數(shù),表示隨機點的數(shù)量,利用蒙特卡洛方法計算圓周率
    返回值為表示圓周率的浮點數(shù)"""
    #====================Begin===================================
    # 補充你的代碼
    a = 0
    count = 0
    while a < times:
        x, y = random.uniform(-1, 1), random.uniform(-1, 1)
        if x**2 + y**2 <=1:
            count += 1
        a +=1
    return 4*count / a 
    #=====================End==================================
if __name__ == '__main__':
    sd = int(input())             #讀入隨機數(shù)種子
    random.seed(sd)               #設(shè)置隨機數(shù)種子
    times = int(input())          # 輸入正整數(shù),表示產(chǎn)生點數(shù)量
    print(monte_carlo_pi(times))  # 輸出圓周率值,浮點數(shù)

4 .梅欽法

'''
利用梅欽公式計算圓周率的大小
'''
import math
def machin_of_pi():
    """用梅欽級數(shù)計算圓周率,返回圓周率值"""
    #################Begin####################################
    pi  = 4*(4*math.atan(1/5)-math.atan(1/239))
    #################End####################################
    return pi
if __name__ == '__main__':
    cal_pi = machin_of_pi()  # 調(diào)用判斷類型的函數(shù)
    print(cal_pi)                    # 輸出函數(shù)運行結(jié)果

5. 拉馬努金法

'''
輸入一個正整數(shù)n,使用拉馬努金法公式計算思加n次時的圓周率值。
'''
import math
def ramanujan_of_pi(n):
    """接收一個正整數(shù)n為參數(shù),用拉馬努金公式的前n項計算圓周率并返回。"""
    ################Begin#######################
    def sumk (k):
        s =1
        for i in range(1,k+1):
            s *= i
        return s
    a = 0
    for i in range (n) :
        a += (sumk(4*i))*(1103+26390*i)/(sumk(i)**4*396**(4*i))
    pi = 1/a*9801/2/2**(1/2)   
    ################End#######################
    return pi
if __name__ == '__main__':
    n = int(input())                
    cal_pi = ramanujan_of_pi(n)  
    print(cal_pi)                    # 輸出函數(shù)運行結(jié)果

在你還沒成功之前,沒人會對你的努力感興趣,累了可以休息,但不要放棄,今天不行明天再來,你的堅持一定很酷,希望你所盼望的,終究會到來。??

總結(jié)

到此這篇關(guān)于python計算圓周率的5種方法的文章就介紹到這了,更多相關(guān)python計算圓周率內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中open函數(shù)對文件處理的使用教程

    python中open函數(shù)對文件處理的使用教程

    open()函數(shù)的作用是打開一個文件,并返回一個file對象(即文件對象),下面這篇文章主要給大家介紹了關(guān)于python中open函數(shù)對文件處理的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Django開發(fā)RESTful API實現(xiàn)增刪改查(入門級)

    Django開發(fā)RESTful API實現(xiàn)增刪改查(入門級)

    這篇文章主要介紹了Django開發(fā)RESTful API實現(xiàn)增刪改查(入門級),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python UnicodeEncodeError: ''gbk'' codec can''t encode character 解決方法

    Python UnicodeEncodeError: ''gbk'' codec can''t encode chara

    這篇文章主要介紹了Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法,需要的朋友可以參考下
    2015-04-04
  • 對Python subprocess.Popen子進程管道阻塞詳解

    對Python subprocess.Popen子進程管道阻塞詳解

    今天小編就為大家分享一篇對Python subprocess.Popen子進程管道阻塞詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python使用雙豎線分割的實現(xiàn)

    python使用雙豎線分割的實現(xiàn)

    本文主要介紹了python使用雙豎線分割的實現(xiàn),通過接收用戶輸入的字符串,使用split()方法進行分割,并將結(jié)果輸出給用戶,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Python應(yīng)用實現(xiàn)雙指數(shù)函數(shù)及擬合代碼實例

    Python應(yīng)用實現(xiàn)雙指數(shù)函數(shù)及擬合代碼實例

    這篇文章主要介紹了Python應(yīng)用實現(xiàn)雙指數(shù)函數(shù)及擬合代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python編輯和運行的四種方式

    Python編輯和運行的四種方式

    本篇內(nèi)容主要是講python在電腦上編輯和運行的幾種不同方式,后面主要是在pycharm中去寫代碼,然后運行,其實還有其他的方式可以在電腦上寫python代碼和運行python代碼,需要的朋友可以參考下
    2024-08-08
  • Python圖像運算之圖像銳化和邊緣檢測

    Python圖像運算之圖像銳化和邊緣檢測

    這篇文章主要和大家講解一下常見的圖像銳化和邊緣檢測方法,即Roberts算子和Prewitt算子。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-12-12
  • 教你用python編寫腳本實現(xiàn)自動簽到

    教你用python編寫腳本實現(xiàn)自動簽到

    這篇文章主要介紹了教你怎樣用python編寫腳本實現(xiàn)自動簽到,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Python實現(xiàn)的簡單排列組合算法示例

    Python實現(xiàn)的簡單排列組合算法示例

    這篇文章主要介紹了Python實現(xiàn)的簡單排列組合算法,涉及Python使用itertools庫進行排列組合運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07

最新評論