鬼才!用Python计算圆周率 π
目錄
一、圓周率的歷史發(fā)展
1、中國
2、印度
3、歐洲
二、用python計算圓周率
A貨:什么!你不會背圓周率(鄙夷的眼神) 3.1415926535 8979323846 26433...?
橋哥:我會算呀 !!!
一、圓周率的歷史
1、中國
★?魏晉時期,劉徽曾用使正多邊形的邊數(shù)逐漸增加去逼近圓周的方法 (即「割圓術(shù)」),求得π的近似值3.1416。
★?漢朝時,張衡得出π的平方除以16等于5/8,即π等于10的開方(約為3.162)。雖然這個值不太準確,但它簡單易理解,所以也在亞洲風(fēng)行了一陣。
★ 王蕃(229-267)發(fā)現(xiàn)了另一個圓周率值,這就是3.156, 但沒有人知道他是如何求出來的(ps. 沒開源唄!)。
★ 公元5世紀,祖沖之和他的兒子以正24576邊形,求出圓周率約為355/113,和真正的值相比,誤差小于八億分之一。這個紀錄在一千年后才給打破。(ps. 在大部分人不知股股定理年代,真牛!)
2、印度
★ 約在公元530年,數(shù)學(xué)大師阿耶波多利用384邊形的周長,算出圓周率約為√9.8684。
★ 婆羅門笈多采用另一套方法,推論出圓周率等于10的平方根。(ps. 跟張衡大佬的結(jié)果一致,但過程不同)
3、歐洲
★ 斐波那契算出圓周率約為3.1418。
★ 韋達用阿基米德的方法,算出3.1415926535<π<3.1415926537。他是第一個以無限乘積敘述圓周率的人。
★ 魯?shù)婪蛉f科倫以邊數(shù)多過32000000000的多邊形算出有35個小數(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計算圓周率π
【方法】蒙特卡洛法
【程序設(shè)計思路】使用python random庫隨機生成點,落在正方形內(nèi),計算正方形內(nèi)的圓內(nèi)落點與正方形內(nèi)落點之比,近似為面積之比,隨機數(shù)越隨機,數(shù)量越大越準確。
【軟件環(huán)境】python 3.6(本程序可兼容python 2.x)
【代碼】
from random import random from time import perf_counterdef calPI(N = 100):hits = 0start = 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 += 1pi = (hits * 4) / (N * N)use_time = perf_counter() - startreturn pi, use_timePI, use_time = calPI(10000) print('use Monte Carlo method to calculate PI: {}'.format(PI)) print('use time: {} s'.format(use_time))【結(jié)果展示】
震驚:10000次隨機數(shù),精確到3.1415了,把橋哥放在1000年前,可不得了
【常見問題答疑】
(每篇文章都有很多粉絲私信我,提前答疑一下!!):
1、運行程序前,先導(dǎo)入頂部的包,怎么導(dǎo)包看這里:https://blog.csdn.net/weixin_39032019/article/details/116934759
2、本文使用的random 和?time庫為python自帶,無需導(dǎo)入,可直接執(zhí)行程序。
我是西紅柿,專注分享互聯(lián)網(wǎng)黑科技,點贊、收藏、評論是對我最好的支持 !!!
總結(jié)
以上是生活随笔為你收集整理的鬼才!用Python计算圆周率 π的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每日SQL打卡】
- 下一篇: 【每日SQL打卡】