在小學階段背過圓周率的同學對這節的標題應該不陌生。π(3.14159…)是大家熟悉的普通無理數,但也是非常神祕的一組數字,例如幾個世紀以來,埃及考古學家和神祕主義追隨者一直癡迷於胡夫金字塔暗藏的圓周率之謎。因爲該金字塔的塔基周長和高的比例是 1760/280,離 2π 只有小於 0.05%的差距。另外,它在許多電影裏面也出現過,作爲推動劇情的重要元素,甚至有一部美國驚悚電影直接以《圓周率》命名,而且這部電影還獲得了1998 年的聖丹斯國際電影節劇情片導演獎。每年的3月14日被定爲“圓周率日”,在 2019 年聯合國教科文組織第四十屆大會上正式宣佈每年的 3 月 14 日是“國際數學日”。
從古到今,數學家們都在對圓周率的計算孜孜以求。出現了衆多計算方法。其中印度數學家尼拉坎特哈發現的一個可用於計算圓周率π近似值的無窮級數(尼拉坎特哈級數)算是比較簡單的了。該級數的展開公式如下:
這個級數的收斂比較快,按照規律迭代計算若干次,結果就與π值非常接近。在python的IDLE環境下輸入是這樣的:
>>> 3+4/(2*3*4)-4/(4*5*6)+4/(6*7*8)-4/(8*9*10)+4/(10*11*12)
3.1427128427128426
那麼julia該怎樣輸入呢?這裏首先要介紹一下數學表達式和運算符了。實際上,大多數編程語言中,表達式都是一項基礎功能,而且基本由操作數、運算符和括號等組成,它的書寫方式、運算符、運算順序等與數學中的基本一致。
算術表達式是通過算術運算符來運算的,又稱爲數值表達式。這裏列舉了基本的算術運算符和使用示例,見表:
描述 |
Python |
julia |
說明 |
加法運算 |
+ |
+ |
|
減法運算 |
− |
− |
|
乘法運算 |
* |
* |
|
除法運算 |
/ |
/ |
|
取模運算,返回除法的餘數 |
% |
% |
|
整除運算(截斷除法) |
// |
div |
Python:12//10=1 Julia:div(12,10)=1 |
冪運算,返回x的y次冪 |
** |
^ |
Python:a**2=4 Julia:a^2=4 |
簡單來說,julia和python大多數運算符是相同的。所以,上面的圓周率計算,用julia來計算也與python基本上沒什麼差別:
julia> 3+4/(2*3*4)-4/(4*5*6)+4/(6*7*8)-4/(8*9*10)+4/(10*11*12)
3.1427128427128426
不過使用手工輸入算式計算圓周率,仍然比較麻煩。在學習了後面的課程循環結構的程序設計之後,就可以編寫程序自動進行計算,充分發揮計算機的優勢。