圓周率π約等於多少?相信小學生也能張口回答:3.1415926。
這個數是怎麼來的?回答:是祖衝之算出來的!
好吧,其實我想問的問題是:祖衝之如何計算出如此精確的數字呢?
相信你也和我一樣抱有這份好奇心吧。今天,我們要詳細了解祖先生使用的圓周率算法,並且通過Scratch3.0編程還原整個計算過程,是不是很期待呢?
故事要從π的算法說起……
01割圓術
魏晉時期有個數學家叫劉徽,在他之前人們使用圓內接正十二邊形的面積,代替圓的面積,然後通過將正十二邊形拆補成一個長方形,以此計算圓的面積。
劉徽感覺哪裡不對,這樣計算誤差很大啊!如果用正24邊形代替正12邊形就會減少誤差,再在24邊形的基礎上繼續切割成48邊形、96邊形……就這樣他割出了圓內接正3072邊形!得到了π的近似值3.1416。
割之彌細,所失彌少,割之又割,以至不可割,則與圓周合體,而無所失矣。
在劉徽的心中,割得越多,誤差越少,最終將與圓「合體」實現零誤差。這是一種極限思維,但是苦於當時的計算條件,割到3072邊形已經驚世駭俗了。
轉眼過了200多年,到了南北朝時期,著名的天文學家、數學家祖衝之隆重登場,他在劉徽割圓術的基礎上,進一步精確計算,據史料記載:祖衝之設置了一個直徑一丈的圓,然後使用割圓術割到24576邊形,然後求得內接正多邊形的周長為「三丈一尺四寸一分五釐九毫二秒七忽到三丈一尺四寸一分五釐九毫二秒六忽之間」,即π介於3.1415926和3.1415927。
祖衝之使用的是周長法。通過測量(計算)正多邊形的周長,用周長與直徑的比值計算圓周率π。
原理就是這樣的,但當時祖衝之是如何測量、如何計算,至今仍是未解之謎!
02Scratch計算圓周率
在魏晉時期,算盤這種神器是不存在的。(據考證算盤實在唐、宋時期才出現的)祖衝之計算時使用的是一些小木棍——算籌,且不論測量時如何解決誤差問題,僅是計算時面臨的困難,其難度可想而知。
今天,我們還原祖衝之周長法計算圓周率,當然不用再拿尺子去量了,藉助計算機的強大運算能力,學習少兒編程的小朋友使用Scratch編程也能輕易計算出更精準的π。
先將公式進行推導:
正n邊形的邊長對應的圓心角 θ = 360° / n
正n邊形邊長 AB = 2 × r × sin( θ / 2 )
正n邊形周長 C = AB × n
圓周率 π = C / ( 2 × r )
綜合以上,圓周率π = n × sin( 180° / n )
根據公式,在Scratch3.0中設置兩個變量:邊數和π。然後搭建積木如下:
利用重複執行,不斷增加邊數,並根據公式計算出對應的π值。
在處理變量π的值時,使用字符串連接,可以將數字轉化為字符串,避免系統自動將小數點後的位數約掉。
當點擊綠旗後,數值不斷跳動……我們的還原計算工作大功告成!
(邊數達到24576時,π的值約為3.1415918592,這和祖衝之的計算結果是有差距的,原因是我們使用正弦函數進行計算式產生的誤差。)
03感嘆
故事到這裡基本接近尾聲了,我們藉助計算機編程很容易地還原了割圓法計算圓周率的過程,雖然計算結果並不十分令人滿意,但還是要感嘆時代變遷、科技發展給我們帶來了多少便利。
遙想當年劉徽、祖衝之的時代,沒有算盤,甚至沒有阿拉伯數字……如此條件下,進行這麼大規模的計算,耗費的腦力、心力和體力都是常人難以想像的!所著成就更是舉世矚目,在浩瀚的歷史長河裡閃耀著智慧之光!
如今科技的發展,瞬間完成了以前多少代人付之努力才能完成的事。當然,我們是站在巨人的肩膀上。
下面,我們簡要回顧π的歷史變遷,向先賢致敬!
04π的歷史
約公元前2世紀,中國古代數學著作《周髀算經》記載「徑一而周三」,即圓周率約為3;
約產於公元前1900年至公元前1600年,一塊古巴比倫石匾上記載了圓周率為3.125。同時期,古埃及文物上記載圓周率等於分數16/9的平方,約為3.1605;
約公元前250年,古希臘大數學家阿基米德藉助勾股定理對圓的內接、外接正96邊形邊長求值,並取平均值3.141851,開創了人類歷史上通過理論計算圓周率近似值的先河。
約公元263年,魏晉時期的數學家劉徽用「割圓術」計算圓周率,求出3072邊形的面積,得到3.1416;
約公元480年,南北朝時期的數學家祖衝之將圓周率精確到小數點後7位,即我們常說的3.1415926至3.1415927之間;
15世紀初,阿拉伯數學家卡西將圓周率精確到17位小數,從而打破了祖衝之保持近千年的記錄;
1596年,德國數學家魯道夫將圓周率算到20位小數值;
1610年,魯道夫又將圓周率精確到35位小數,該數值被稱為「魯道夫數」;
1706年,梅欽將圓周率計算突破100位小數,並研究了第一個快速算法「梅欽類公式」;
1789年,斯洛維尼亞數學家維加計算出小數點後140位(其中137位正確);
1948年,英國數學家弗格森和美國數學家倫奇共同發表了圓周率的808位小數值,成為人工計算圓周率的最高紀錄。
隨後,進入了計算機時代,人們利用計算機不斷突破圓周率的精確長度……篇幅所限不一一記錄,只寫兩個有趣的:
2010年,日本的近藤茂用自己組裝的電腦,耗時90餘天,計算到小數點後5萬億位,他的妻子坦言:「電費壓力比較大」;
2019年3月14日,一位日本籍谷歌工程師,利用雲計算資源,耗時121天,將圓周率算到了31415926535897位,即31.4萬億位,以此來紀念圓周率日。
至此,更高精度的圓周率已經沒有實際的應用意義了,一個無限不循環小數,或許藏著宇宙的奧秘,等待未來的破解,但是現在它只是用來檢驗計算機運算能力的一個工具了。