祖衝之如何算出圓周率?用編程還原計算過程,結果令人感嘆不已

2020-11-23 積木哥思維與數學

圓周率π約等於多少?相信小學生也能張口回答:3.1415926。

這個數是怎麼來的?回答:是祖衝之算出來的!

OMG

好吧,其實我想問的問題是:祖衝之如何計算出如此精確的數字呢

相信你也和我一樣抱有這份好奇心吧。今天,我們要詳細了解祖先生使用的圓周率算法,並且通過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中設置兩個變量:邊數和π。然後搭建積木如下:

Scratch計算圓周率代碼

利用重複執行,不斷增加邊數,並根據公式計算出對應的π值。

在處理變量π的值時,使用字符串連接,可以將數字轉化為字符串,避免系統自動將小數點後的位數約掉。

當點擊綠旗後,數值不斷跳動……我們的還原計算工作大功告成!

(邊數達到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位小數值,成為人工計算圓周率的最高紀錄。

隨後,進入了計算機時代,人們利用計算機不斷突破圓周率的精確長度……篇幅所限不一一記錄,只寫兩個有趣的:

3月14日紀念圓周率日

2010年,日本的近藤茂用自己組裝的電腦,耗時90餘天,計算到小數點後5萬億位,他的妻子坦言:「電費壓力比較大」;

2019年3月14日,一位日本籍谷歌工程師,利用雲計算資源,耗時121天,將圓周率算到了31415926535897位,即31.4萬億位,以此來紀念圓周率日。

至此,更高精度的圓周率已經沒有實際的應用意義了,一個無限不循環小數,或許藏著宇宙的奧秘,等待未來的破解,但是現在它只是用來檢驗計算機運算能力的一個工具了。

相關焦點

  • 祖衝之算圓周率時,算盤還沒被發明,他用了何種方法計算出的
    影射、不涉及任何政治世界上第一個將圓周率精確到七位的,就是我國祖衝之,直到一千年以後,阿拉伯數學家阿爾·卡西和法國數學家維葉特兩人才將圓周率後七位給算出來,證明了祖衝之算出的圓周率是正確的,在相同的時間裡,德國科學家將此稱之為安託尼茲率,但仍然別有用心的人說,這段歷史是中國偽造的,而且他們還舉出了種種例子。
  • 圓周率是如何計算的?祖衝之的『綴術』居然失傳了
    日本某個無聊的出版社居然出了一本一百萬位的圓周率的書《円周率1000000桁表》,全書只有一個數字:π。你知道人們最開始是如何計算圓周率的嗎?根據相似形可知:任何一個圓的周長與直徑的比都是一個常數,把這個常數稱為圓周率π。如果使用一根軟繩測量圓的周長,再除以圓的直徑,只能得到圓周率大約等於3的結果,更加精確的結果只能依賴計算。第一個把π計算到3.14的人是古希臘的阿基米德。
  • 祖衝之與圓周率
    有一位德國數學家曾經這樣說過:「歷史上一個國家所得到的圓周率的精確程度,可以作為衡量這個國家當時數學發展水平的一個標誌。」祖衝之推算出的圓周率,精確到小數點以後第七位有效數字,是當時世界上最先進的圓周率,西方直到1573年才由德國奧託較為精確地計算出來,比祖衝之晚了1100多年!後來荷蘭人安託尼茲也算出這個近似分數,於是歐洲人就把這個稱為「密率」的近似分數叫 「安託尼茲率」。
  • 中國古代圓周率π的計算史:祖衝之和圓周率的高效計算
    本課程介紹中國古代圓周率的計算史。首先從劉徽割圓術講起,通過介紹割圓術的算法思想和計算方法,以及劉徽不等式的證明,探尋其中所蘊含的對現代數學影響巨大的數學思想。接著介紹了祖衝之對於圓周率的高效運算和他所得到的的高精度結果。由於記載著他的方法的《綴術》失傳,後世學者為探索其可以精確的計算圓周率結果的方法,做出了各種各樣的嘗試,本課程也一一進行了簡單介紹。
  • 圓周率π的計算曆程
    割圓術僅用內接正多邊形就確定出了圓周率的上、下界,比阿基米德用內接同時又用外切正多邊形簡捷得多。另外,有人認為在割圓術中劉徽提供了一種絕妙的精加工辦法,以致於他將割到192邊形的幾個粗糙的近似值通過簡單的加權平均,竟然獲得具有4位有效數字的圓周率 π =3927/1250 =3.1416。而這一結果,正如劉徽本人指出的,如果通過割圓計算得出這個結果,需要割到3072邊形。
  • 古代沒有計算機,祖衝之是怎樣把圓周率計算到小數點後七位的?
    祖衝之是我國南北朝時期傑出的數學家、天文學家,他在數學、天文曆法和機械製造三方面,為我國的科學進步做出了不可磨滅的貢獻。其中一個比較重要的貢獻是,把圓周率精確到小數點後七位,確定了圓周率數值在3.1415926和3.1415927之間。
  • 唐豆薈丨祖衝之與圓周率的故事
    祖衝之在數學上的重要貢獻是求得了圓周率的七位小數的精確值。他所提出的圓周率的密率,比荷蘭工程師安託尼茲早了1000年。因此,日本數學家三上義夫建議,把原來以安託尼茲命名的圓周率的密率,改為「祖率」,以紀念祖衝之。         所謂圓周率,就是圓周長與直徑長之比。
  • 全世界都在算圓周率,算圓周率到底有什麼用?算到盡頭會怎樣
    全世界都在算圓周率,算圓周率到底有什麼用?算到盡頭會怎樣,我們知道數學是最嚴密的科學,數學也是最有趣的科學,同時我們也被數學的魅力所吸引,對於我們很多人來說,第一個有趣的問題是圓周率,第一次接觸圓周率的時候,理論上很難理解,為什麼這樣的數字無限且不循環呢?
  • 全世界都在算圓周率,算圓周率到底有什麼用?算盡了會怎樣?
    在最初接觸圓周率的時候,在邏輯上是很難以理解的,為什麼會有這樣一個數字,無限且不循環呢?最終,很多人在心裡默默給出了一個答案,肯定是因為計算能力有限,所以沒能將圓周率算完。在古代,計算圓周率的確是一件非常困難的事情,我國古代偉大的數學家祖衝之就是因為利用割圓術精準算出圓周率在3.1415926和3.1415927之間而聲名顯赫。但是對於現在的人們來講,計算圓周率並不是什麼難事,因為我們有了超級計算機,你可能不知道,迄今為止,功能最強大的超級計算機已經將圓周率計算到了小數點後十萬億位,它仍然沒有出現循環。
  • 沒有阿拉伯數字,沒有小數點,祖衝之怎麼記載圓周率?
    (一)圓周率是指圓周長與直徑的比值,我們習慣性把它簡稱為π,而它的具體值也是經歷了很長的時間,其中由祖衝之計算出的值比西方早了近一千年,最重要的是準確到小數點後第七位,即3.1415926,也因此把圓周率稱作是「祖衝之圓周率」。
  • 圓周率究竟能不能計算盡?那麼多人都在算,到底有什麼用呢?
    大家最熟悉的一個有趣的數學問題就是圓周率,即π,也就是圓周長和直徑的比值,這個數字有趣的地方在於它是個無理數,既算不完還不循環。很多人都難以理解,怎麼可能算不完呢,肯定計算機能力還達不到,所以才一直沒有結果。
  • 在沒有望遠鏡的古代,祖衝之是如何準確計算出「日食月食」的
    對數學的貢獻說起他對數學的貢獻,只要上過小學的中國人都知道,那就是大大提高了圓周率的準確性。他在前輩劉輝的基礎上,將()的數值定在現代小數點後七位的3.1415926~3.1415927之間,簡化為3.1415926。因此,祖衝之被選為世界上第一位將圓周率值計算到小數點後第7位的科學家。
  • 超級計算機仍在沒日沒夜計算圓周率,到底有何用?
    人們一般以希臘字母π來表示圓周率,它指的是圓的周長跟直徑的比值,我們早在讀初中的時候對它就很熟悉了。在很久以前的公元263年,我國的一位數學家用「割圓術」算出了圓周率,約是3.1416,該數學家叫劉微,他對自己算出的圓周率數值還是感到滿意的;在之後的公元480年左右,著名數學家祖衝之給出了圓周率更為精確的結果,能達到小數點後七位
  • 正多邊形與圓的關係——那些數學大牛是咋算出圓周率的?
    人們很早就注意到了圓周率的存在,生產活動時,人們觀察到輪子轉一圈的長度(即圓的周長)和其直徑之間有固定的聯繫,通過粗糙的測量計算發現圓的周長總是直徑的3倍多。最早記載見於約2000多年前的《周髀算經》,其中提到「周三徑一」,這就是古率。
  • 圓周率π的計算曆程及各種腦洞大開的估計方法
    作為一個非常重要的常數,圓周率最早是出於解決有關圓的計算問題。僅憑這一點,求出它的儘量準確的近似值,就是一個極其迫切的問題了。回顧歷史,人類對 π 的認識過程,反映了數學和計算技術發展情形的一個側面。 π 的研究,在一定程度上反映這個地區或時代的數學水平。為求得圓周率的值,人類走過了漫長而曲折的道路,它的歷史是饒有趣味的。我們可以將這一計算曆程分為幾個階段。
  • 圓周率已經算到小數點後31.4萬億位,各國仍未停止計算,為什麼?
    在中學生考試中,圓周率通常都會用「3.14」一筆帶過,一般來說,精確到「3.14」其實已經夠用了,一能方便計算,二是節省時間。雖然說平常圓周率可以用「3.14」來「縮寫」,但是,目前各國仍未停止對圓周率的計算,並且,目前圓周率已經被精確到31.4萬億位以上,目前這個數值仍然在不斷增加。那麼,問題來了,很多人對一直計算圓周率很不理解,為什麼一定要一直算下去呢?
  • 圓周率為什麼是無限的 圓周率是怎樣算出來的?
    圓周率為什麼是無限的 圓周率是怎樣算出來的?時間:2017-05-06 16:50   來源:360問答   責任編輯:沫朵 川北在線核心提示:原標題:圓周率為什麼是無限的 圓周率是怎樣算出來的?阿基米德用圓的內接和外切正多邊形的周長給出圓周率的下界和上界,正多邊形的邊數越多,計算出π值的精度越高。阿基米德從正六邊形出發,逐次加倍正多邊形的邊數,利用勾股定理(西方稱為畢達哥拉斯定理),就可求得邊數加倍後的正多邊形的邊長。因此,隨著邊數的不斷加倍,阿基米德的方法原則上可以算出任意精度的π值。
  • 古代最偉大的成就「圓周率」到底是怎麼計算出來的?
    而且還寫出了在唐代被當作課本來用的著名數學專著《綴術》。十分遺憾的是這本書並沒有流傳至今,另外他與兒子還一起求出了球體的計算公式。祖衝之採用的是將圓切割,然後分別計算的方法加和而求出。如果要將圓周率精確到小數點之後的七位,必須要對圓進行24576邊形進行切割,然後依次求出內接正多邊形的邊長,工作量十分巨大,所以現代人見到如此精確的數據之後才產生了膜拜之情。正是因為祖衝之的圓周率精確到小數點後七位,也就是精確到了3.1415926到3.1415927之間。
  • 古時候又沒計算機,古人是怎麼算出圓周率的?
    2010年的派節,Google也換了個標,裡面有很多用到了派的方程式。三國時代的劉徽,算出了π=3.1416。他研究出來的割圓術,給後世算圓周率的指了一個明路。「割之彌細,所失彌少,割之又割以至於無可割,則與圓合體而無所失也」。而且,他採用了雙向迫近的方法,相當於給了上限和下限,讓結果更加精確。
  • 圓周率的故事
    圓周率的開始在公元前3世紀,古希臘的阿基米德就成功利用割圓法求得π的值介於3.14163和3.14286之間,這個數字成功的算對了小數點後三位。而在此之前π的值總是被默認為3。當把 π 定義為周長和直徑的比值後,如何進一步計算圓的面積呢?通過推導,可以得到半徑為 r 的圓的面為 πr^2, 但這個結論又如何被證明呢?