濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 利用Python計(jì)算圓周率π的實(shí)例代碼

利用Python計(jì)算圓周率π的實(shí)例代碼

熱門標(biāo)簽:應(yīng)電話機(jī)器人打電話違法嗎 地圖標(biāo)注線上如何操作 開(kāi)封自動(dòng)外呼系統(tǒng)怎么收費(fèi) 河北防封卡電銷卡 電銷機(jī)器人的風(fēng)險(xiǎn) 天津電話機(jī)器人公司 手機(jī)網(wǎng)頁(yè)嵌入地圖標(biāo)注位置 400電話辦理哪種 開(kāi)封語(yǔ)音外呼系統(tǒng)代理商

前言

A貨:什么!你不會(huì)背圓周率(鄙夷的眼神) 3.1415926535 8979323846 26433... 

橋哥:我會(huì)算呀 ?。?!

一、圓周率的歷史

1、中國(guó)

★ 魏晉時(shí)期,劉徽曾用使正多邊形的邊數(shù)逐漸增加去逼近圓周的方法 (即「割圓術(shù)」),求得π的近似值3.1416。

★ 漢朝時(shí),張衡得出π的平方除以16等于5/8,即π等于10的開(kāi)方(約為3.162)。雖然這個(gè)值不太準(zhǔn)確,但它簡(jiǎn)單易理解,所以也在亞洲風(fēng)行了一陣。

★ 王蕃(229-267)發(fā)現(xiàn)了另一個(gè)圓周率值,這就是3.156, 但沒(méi)有人知道他是如何求出來(lái)的(ps. 沒(méi)開(kāi)源唄?。?。

★ 公元5世紀(jì),祖沖之和他的兒子以正24576邊形,求出圓周率約為355/113,和真正的值相比,誤差小于八億分之一。這個(gè)紀(jì)錄在一千年后才給打破。(ps. 在大部分人不知股股定理年代,真牛!)

2、印度

★ 約在公元530年,數(shù)學(xué)大師阿耶波多利用384邊形的周長(zhǎng),算出圓周率約為√9.8684。

★ 婆羅門笈多采用另一套方法,推論出圓周率等于10的平方根。(ps. 跟張衡大佬的結(jié)果一致,但過(guò)程不同)

3、歐洲

★ 斐波那契算出圓周率約為3.1418。

★ 韋達(dá)用阿基米德的方法,算出3.1415926535π3.1415926537。他是第一個(gè)以無(wú)限乘積敘述圓周率的人。

★ 魯?shù)婪蛉f(wàn)科倫以邊數(shù)多過(guò)32000000000的多邊形算出有35個(gè)小數(shù)位的圓周率。

★ 華理斯在1655年求出一道公式π/2=2×2×4×4×6×6×8×8...../3×3×5×5×7×7×9×9......

★ 歐拉發(fā)現(xiàn)的e的iπ次方加1等于0,成為證明π是超越數(shù)的重要依據(jù)。

二、用python計(jì)算圓周率π

【方法】蒙特卡洛法

【程序設(shè)計(jì)思路】使用python random庫(kù)隨機(jī)生成點(diǎn),落在正方形內(nèi),計(jì)算正方形內(nèi)的圓內(nèi)落點(diǎn)與正方形內(nèi)落點(diǎn)之比,近似為面積之比,隨機(jī)數(shù)越隨機(jī),數(shù)量越大越準(zhǔn)確。

【軟件環(huán)境】python 3.6(本程序可兼容python 2.x)

【代碼】

from random import random
from time import perf_counter
 
def calPI(N = 100):
    hits = 0
    start = perf_counter()
    for i in range(1, N*N+1):
        x, y = random(), random()
        dist = pow(x ** 2 + y ** 2, 0.5)
        if dist = 1.0:
            hits += 1
    pi = (hits * 4) / (N * N)
    use_time = perf_counter() - start
    return pi, use_time
 
PI, use_time = calPI(10000)
print('use Monte Carlo method to calculate PI: {}'.format(PI))
print('use time: {} s'.format(use_time))

【結(jié)果展示】

震驚:10000次隨機(jī)數(shù),精確到3.1415了,把橋哥放在1000年前,可不得了

附:python輸出指定精度的圓周率pi的值

首先像所有人都會(huì)的一樣,本能地敲出

import math
val = math.pi
print(val)

這樣就得到了pi的近似值3.141592653589793,要得到后面的小數(shù),

不是直接可以簡(jiǎn)單粗暴的乘以10的指數(shù)

import math
val = math.pi * 100000000000000000
print(val)

但是當(dāng)val的小數(shù)部分都變成整數(shù)141592653589793的時(shí)候,并不會(huì)如我們所想的那樣露出后幾位整數(shù),而是直接變成科學(xué)計(jì)數(shù)法3.141592653589793e+24,所以在小數(shù)點(diǎn)移位之后為了看到整數(shù)部分,我們必須把float轉(zhuǎn)換成int

import math

def get_pi_value(x):
  if(x>0):
   num = math.pow(10,x)
   val = int(math.pi * num)
   print(val)
  else:
   print('輸入有誤')
   
for i in range(10):
 get_pi_value(i * 10)

運(yùn)行結(jié)果:

輸入有誤
31415926535
314159265358979334144
3141592653589793216413703340032
31415926535897931797658451191693855162368
314159265358979323748068948991981337089580185157632
3141592653589793042280431964658831312838665295201939643957248
31415926535897934343019391492015828684494553443559665723073458675384320
314159265358979299628295535813807516164434328768456060679773689288809487458631680
3141592653589793231804887682686061504016619085797532053907788745336000826072569315489480704

總結(jié)

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

您可能感興趣的文章:
  • 給大家整理了19個(gè)pythonic的編程習(xí)慣(小結(jié))
  • Python入門篇之編程習(xí)慣與特點(diǎn)
  • 符合語(yǔ)言習(xí)慣的 Python 優(yōu)雅編程技巧【推薦】
  • 只用20行Python代碼實(shí)現(xiàn)屏幕錄制功能
  • Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
  • 只需要100行Python代碼就可以實(shí)現(xiàn)的貪吃蛇小游戲
  • 寫好Python代碼的幾條重要技巧
  • Python 線程池模塊之多線程操作代碼
  • python使用tkinter實(shí)現(xiàn)透明窗體上繪制隨機(jī)出現(xiàn)的小球(實(shí)例代碼)
  • python3調(diào)用c語(yǔ)言代碼的全過(guò)程記錄
  • Python代碼風(fēng)格與編程習(xí)慣重要嗎?

標(biāo)簽:山東 常州 宿遷 蘭州 江蘇 駐馬店 六盤水 成都

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用Python計(jì)算圓周率π的實(shí)例代碼》,本文關(guān)鍵詞  利用,Python,計(jì)算,圓周率,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用Python計(jì)算圓周率π的實(shí)例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于利用Python計(jì)算圓周率π的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    涿鹿县| 太康县| 阳高县| 辰溪县| 紫阳县| 墨玉县| 宣武区| 申扎县| 陆河县| 北海市| 庆安县| 石嘴山市| 德昌县| 安徽省| 化州市| 阿合奇县| 澄迈县| 武威市| 道真| 即墨市| 叙永县| 遵化市| 定陶县| 天峨县| 恩施市| 靖边县| 玉树县| 宜良县| 增城市| 泰来县| 彩票| 嘉义县| 民权县| 顺义区| 姚安县| 桑植县| 宣武区| 广元市| 天水市| 迁安市| 嫩江县|