1. 程式人生 > >小朋友學C語言(32):求圓周率

小朋友學C語言(32):求圓周率

(一)圓周率簡介

圓周率(Pi)是圓的周長與直徑的比值,一般用希臘字母π表示,是一個在數學及物理學中普遍存在的數學常數。π也等於圓形之面積與半徑平方之比。是精確計算圓周長、圓面積、球體積等幾何形狀的關鍵值。
圓周率是一個無理數,即無限不迴圈小數。在日常生活中,通常都用3.14代表圓周率去進行近似計算。而用十位小數3.141592654便足以應付一般計算。即使是工程師或物理學家要進行較精密的計算,充其量也只需取值至小數點後幾百個位。

(二)計算公式

1965年,英國數學家約翰·沃利斯(John Wallis)出版了一本數學專著,其中他推匯出一個公式,發現圓周率等於無窮個分數相乘的積。2015年,羅切斯特大學的科學家們在氫原子能級的量子力學計算中發現了圓周率相同的公式:
pi/4 = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ……

(三)利用公式程式設計求圓周率的值

#include <stdio.h>
#include <math.h>

int main()
{
    float pi = 0;
    int sign = 1;       // 正負符號 
    float deno = 1;     // 分母
    float item = 1;     // 項 
    // fabs是求絕對值的函式,在math.h中宣告,在math.c中定義
    // 1e-6中的"-"左右兩側不能有空格;等價於0.000001。同理1e-3等價於0.001 
    while(fabs(item) >= 1e-6
) { pi += item; sign = -sign; // 根據公式,每計算一項,就得變動一次正負號 deno +=2; // 分母每次都自加2 item = sign / deno; // 第幾項的值,用於下一輪計算 } pi = 4 * pi; printf("pi = %f", pi); return 0; }

執行結果:

pi = 3.141594

注意,這裡是精確到小數點後六位,這意味著小數點後的最後一位數字可能是不準確的。

(四)作業

默寫程式

更多內容請關注微信公眾號
wchat.jpg