圓周率π是怎麼算出來的,用程序怎麼算

2021-02-15 楊建榮的學習筆記

    下午在看一個算法的時候,突然看到了一個關於圓周率的問題,如果問你圓的周長怎麼算,你肯定毫不猶豫是2πR,但是π是怎麼算出來的呢?估計我們都沒有想過,所以我們看很多算法的時候,其實只是給了我們一個公式,其實和不懂差不多不是很大。

    我來調用下我薄弱的數學細胞,簡單來看一下。把一個圓如果展開,得到的就是圓的周長,即一個非精確值3.1415926。

我們來推算一下,下面的這個六邊形,如果圓心為中心,那么半徑是和六邊形的邊長度是一樣的。假設半徑長度是1,則六邊形的邊也是1。

    如果要求得圓周的長度,其實就是不斷的把多邊形擴張,一條邊繼續細分為兩個角,即十二邊形,如此類推,那麼得到的結果就是一個極為精確的了。

    本來想著公式應該推導起來不難,結果發現數學基礎確實不紮實。

第一次推導是按照這種標記方式來的,貌似少了個條件,在左邊各種推導,推導失敗。

    然後換了個思路,重新來推導,總算有了起色。

    所以我們可以很明確的知道,如果擴張後的長度和原來的長度的關係是這樣的。那麼我們就可以藉助程序來實現圓周率的算法了。

    當然假設我們是不知道圓周率這個東西的,在知道了這個關聯關係後,其實可以繼續做一些推導。

    比如六邊形,假設邊長為x,則6x的長度是一個最粗略的圓的周長,這樣一來,周長就是近似於6,它和半徑的關係就是6*1,按照2πR的公式來看,其實也可以理解為2R(即為直徑),當然實際周長要比6大一點。也就是我們計算π的意義了。

    所以只要切分的邊足夠多,那麼得到的π的值也就更加精確。這個時候寫程序的話,可以參考如下的方式,不斷的切分。

import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
       System.out.println("請輸入割圓次數:");
       int n = scan.nextInt();
       cut(n);
   }


static void cut(int n) {
double y = 1.0;
   for (int i = 0; i <= n; i++) {
double π = 3 * Math.pow(2, i) * y;
       System.out.println("第" + i + "次切割,為正" +
Math.round( 3 * Math.pow(2, i+1)) + "邊形,圓周率π≈" + π);
       y = Math.sqrt(2 - Math.sqrt(4 - y * y));
   }
}
}

程序的輸出如下:


請輸入割圓次數:
15
       第0次切割,為正6邊形,圓周率π≈3.0

       第1次切割,為正12邊形,圓周率π≈3.1058285412302498

       第2次切割,為正24邊形,圓周率π≈3.132628613281237

       第3次切割,為正48邊形,圓周率π≈3.139350203046872

       第4次切割,為正96邊形,圓周率π≈3.14103195089053

       第5次切割,為正192邊形,圓周率π≈3.1414524722853443

       第6次切割,為正384邊形,圓周率π≈3.141557607911622

       第7次切割,為正768邊形,圓周率π≈3.141583892148936

       第8次切割,為正1536邊形,圓周率π≈3.1415904632367617

       第9次切割,為正3072邊形,圓周率π≈3.1415921060430483

       第10次切割,為正6144邊形,圓周率π≈3.1415925165881546

       第11次切割,為正12288邊形,圓周率π≈3.1415926186407894

       第12次切割,為正24576邊形,圓周率π≈3.1415926453212157

       第13次切割,為正49152邊形,圓周率π≈3.1415926453212157

       第14次切割,為正98304邊形,圓周率π≈3.1415926453212157

       第15次切割,為正196608邊形,圓周率π≈3.1415926453212157

    想像古代的人能夠計算到小數點後7位,在條件那麼簡單的情況,真是厲害。

關於圓周率計算的方法,後續再花一些時間琢磨下,比如用蒙特卡洛的算法。今天給我最大的一個收穫是讓我真正做了一些計算,能夠推導出一個看起來有些複雜的公式,看來小學初中的課程內容我開始熟悉起來了。

個人微信公眾號,歡迎掃碼關注。

相關焦點

  • 圓周率「π」是真的算不盡嗎?
    π是圓的周長與其直徑的比值。換言之,π等於圓的周長除以直徑。反過來,圓的周長等於π乘以直徑。無論圓的大小,π總是同一個數。  在1761年,德國數學家約翰·海因裡希·蘭伯特首次證明了π是一個無理數,即無盡不循環小數,它無法用兩個整數的比值來表示。這意味著,π的小數位將會無限延續下去,小數點後面有無限多個不循環數字。因此,π沒有一個精確的值。
  • 圓周率為什麼是無限的 圓周率是怎樣算出來的?
    圓周率為什麼是無限的 圓周率是怎樣算出來的?時間:2017-05-06 16:50   來源:360問答   責任編輯:沫朵 川北在線核心提示:原標題:圓周率為什麼是無限的 圓周率是怎樣算出來的?圓可能是自然界中最常見的圖形了,人們很早就注意到,圓的周長與直徑之比是個常數,這個常數就是圓周率,現在通常記為,它是最重要的數學常數之一。 關於最早的文字記載來自公元前2000年前後的古巴比倫人,它們認        原標題:圓周率為什麼是無限的 圓周率是怎樣算出來的?
  • 古時候又沒計算機,古人是怎麼算出圓周率的?
    在現代,圓周率的用途就更多了~π可以是方程的重要組成,很多重要的數學、物理方程中都有π的身影,比如正態分布、歐拉恆等式、庫侖定律、真空磁導率等等。©Google.com……公元前1500年,巴比倫人的泥板上,π是25/8,也就是3.125;古印度的一些典籍裡面,π和根號10一樣,等於3.162;《九章算術》乾脆就直接「周三徑一」,π=3.33。三國時代的劉徽,算出了π=3.1416。他研究出來的割圓術,給後世算圓周率的指了一個明路。
  • 「π日」說π:這麼複雜的一個數,誰算的?咋算的?
    他研究出來的割圓術,給後世算圓周率的指了一個明路。「割之彌細,所失彌少,割之又割以至於無可割,則與圓合體而無所失也」。而且,他採用了雙向迫近的方法,相當於給了上限和下限,讓結果更加精確。 劉徽自己割出了3072邊型,算出了π=3.1416。從面積算邊長,難免用到開方,而那時候開方需要「籌算法」,簡單地說就是用木條用複雜的過程橫豎拼湊。
  • 為什麼圓周率算不盡還要算?科學家認為它藏著宇宙奧秘,內有天機
    眾所周知,圓周率是數學和物理學上普遍存在的數學常數,它用希臘字母π來表示,是一個無理數,即無限不循環小數。我們用π來精確計算圓周長、圓面積、球體積等幾何問題。但你知道π是怎麼被推算出來的嗎?為何有人說它與宇宙奧秘息息相關呢?
  • 為什麼圓周率算不盡還要算?科學家認為它藏著宇宙奧秘,內有天機
    眾所周知,圓周率是數學和物理學上普遍存在的數學常數,它用希臘字母π來表示,是一個無理數,即無限不循環小數。我們用π來精確計算圓周長、圓面積、球體積等幾何問題。但你知道π是怎麼被推算出來的嗎?為何有人說它與宇宙奧秘息息相關呢?
  • 在家用芝麻算圓周率π=3.14159,可行嗎?
    你知道嗎,芝麻不但能做香噴噴的芝麻餅,還可以用來算圓周率π=3.14159!歷史上的數學家和科學家提出過非常多計算圓周率的方法,比如割圓法、級數展開法等等。今天我們介紹一種在家用一把芝麻就能動手操作的實驗方法,來測量圓周率的值。
  • 全世界都在算圓周率,算圓周率到底有什麼用?算盡了會怎樣?
    ,圓周率,也就是π,是圓周長與直徑的比值,這個比值的有趣之處就在於它是一個無理數,無限,且不循環。可能你還會說,只要繼續計算,總有一日能夠算盡圓周率。很遺憾,這只是臆想,是不可能的,因為圓周率是一個真真正正的無理數。
  • 超級計算機有沒有可能把「π」算盡?聽專家說完,算是明白了!
    超級計算機有沒有可能把「π」算盡?聽專家說完,明白了!數學是由一些簡單的數字和符號組成的科學,雖然看著簡單卻十分複雜。而且裡面含有許多和自然匹配的規律,像圓周率。一個簡簡單單的數,就使得多代數學領域的人,花費多年光陰去研究。
  • 今天3.14是世界圓周率日 圓周率是怎麼算出來的?
    今天是國際圓周率日。如果現在突然要你背π的值,你能背到幾位?我大概可以背到20多位:3.1415926535897932384626。話說回來,只要能記得3.1415926,回到古代就夠你用的了。圓周率是什麼?
  • 全世界都在算圓周率,算圓周率到底有什麼用?算到盡頭會怎樣
    全世界都在算圓周率,算圓周率到底有什麼用?算到盡頭會怎樣,我們知道數學是最嚴密的科學,數學也是最有趣的科學,同時我們也被數學的魅力所吸引,對於我們很多人來說,第一個有趣的問題是圓周率,第一次接觸圓周率的時候,理論上很難理解,為什麼這樣的數字無限且不循環呢?
  • 圓周率是算不盡的無理數,假如哪天它算盡了,會有多嚴重的後果?
    3.1415926535這個數字想必大家都很熟悉,這就是圓周率,我們以前經常用來背誦比賽的數字。不過就算計算到了小數點後這麼多位,它還也只是一個近似值,真正的圓周率是一個算不盡的數字,也就是說它小數點後面的數字是有無數多個的,我們完全不可能把它全部給計算出來。
  • 圓周率是算不盡的無理數,如果有一天它算盡了,後果會有多嚴重?
    圓周率π是一個非常神奇的數字,它是一個無限不循環的小數,不管怎麼算都無法得到一個準確的數字。我們從小就開始接觸圓周率,從最開始的3.14,再到後來的3.1415926,再到大學微積分當中的無理數,可以說圓周率陪伴了我們整個的學習生涯。
  • 「π之謎」!圓周率π算到31萬億位!繼續算下去有何意義?
    每天你只需花3.14就能算出圓周或圓周面積。為何還要繼續?這種堅持是否有意義?數千年前,古代人發現圓周的長度和直徑成正比。由π號表示。巴比倫認為應該是3.1255,埃及認為應該是3.1605,甚至在生活中的許多建築中,這些都可以用來計算π比。pi可能是我們最熟悉的數學值,因為它有一個非常形象的代號「π」,還有一個難忘的值「3.1415926」。
  • Google算法助力 圓周率π算出兩千萬億位
    圓周率π是一個無限不循環的無理數,但人們對小數點後那一長串數字的追求是永無止境的。據英國BBC報導,研究人員近日藉助Google的新算法和雲計算技術,確認了圓周率小數點後的第兩千萬億位,也就是第2000000000000000位。
  • 如果圓周率算盡了,會出現什麼後果?
    沒趕上圓周率紀念日,咱趕在4月14日前出一篇圓周率。關於圓周率,我們從中學就知道這是一個無線不循環小數,所以它應該是算不盡的,假如有一天圓周率被算盡,那麼這個宇宙會發生什麼樣的後果呢?中國古代數學家劉徽也用這個割圓術來計算圓周率的,而南北朝數學家祖衝之則將割圓術發揮到了極致,計算出圓周率大約為3.1415926-3.1415927,這個精度是啥概念呢?大約1萬多千米的圓,計算的時候才可能差1米,地球不過1.27萬千米左右,所以就算用祖衝之的圓周率也就差了1米多,一個相當恐怖的精度!
  • 如果圓周率算盡了,會出現什麼後果?
    沒趕上圓周率紀念日,咱趕在4月14日前出一篇圓周率。關於圓周率,我們從中學就知道這是一個無線不循環小數,所以它應該是算不盡的,假如有一天圓周率被算盡,那麼這個宇宙會發生什麼樣的後果呢?大約1萬多千米的圓,計算的時候才可能差1米,地球不過1.27萬千米左右,所以就算用祖衝之的圓周率也就差了1米多,一個相當恐怖的精度!
  • 科學家用超級計算機計算圓周率,到底有什麼意義?真能算出來嗎?
    科學家用超級計算機計算圓周率,到底有什麼意義?真能算出來嗎?相信大家多少都知道點圓周率,作為一個常數,因我們無法估量它的正確值,所以就用一個字母π來代替,圓周率被發現的時候轟動了整個數學界,它的影響一直延續到今天。
  • 圓的面積怎麼算,計算公式是什麼
    今天,我們的主題是:圓的面積怎麼算,計算公式是什麼圓面積是指圓形所佔的平面空間大小,常用S表示。圓是一種規則的平面幾何圖形,其計算方法有很多種。圓的面積就是圓的半徑r的平方乘以π,即S=πr²。1圓面積計算公式公式:圓周率乘以半徑的平方用字母可以表示為:S=πr²或S=π*(d/2)²。
  • 古人為什麼不直接用軟尺圍成圓,用長度除以直徑,算出圓周率?
    我們現在知道圓的周長和圓的直徑有個固定關係是C=π×d。我們怎麼知道的,是前人經過複雜並且是長期的計算才得出來的。古人在當時根本就不知道周長C和直徑d之間是不是有關係,有什麼樣的關係,你讓古人測周長,然後直接除以直徑,得出圓周率π的數值?