python偶数数列求和_Numpy 斐波纳契数列求和
斐波納契數(shù)列求和,本章我們將對(duì)斐波那契數(shù)列中取值不大于四百萬(wàn)且為偶數(shù)的項(xiàng)進(jìn)行求和運(yùn)算。斐波納契數(shù)列是從0開始的一個(gè)整數(shù)序列,除了第一項(xiàng)和第二項(xiàng)是0和1之外,其余各項(xiàng)的取值都是該項(xiàng)之前的兩項(xiàng)求和的結(jié)果。
也可以認(rèn)為斐波那契數(shù)列的第一項(xiàng)為1,把0看作第零項(xiàng)并省略不寫。
有關(guān)斐波那契數(shù)列的更多信息,請(qǐng)參閱維基百科頁(yè)面 http://en.wikipedia.org/wiki/Fibonacci_number的相關(guān)介紹。
本章使用了一個(gè)基于黃金比例(golden ratio)的公式。黃金比例就是一個(gè)無(wú)理數(shù),有著類似于π的獨(dú)特屬性。我們將用到sqrt、log、arange、astype和sum函數(shù)。
具體步驟
首先需要計(jì)算黃金比例(http://en.wikipedia.org/wiki/Golden_ratio)。黃金比例也被稱作黃金分割(golden section或golden mean)。
計(jì)算黃金比例。
我們將使用sqrt函數(shù)計(jì)算5的平方根:
這樣就得到了黃金分割數(shù):
確定小于四百萬(wàn)的項(xiàng)的最大索引值。
接下來(lái),需要確定斐波那契數(shù)列中小于四百萬(wàn)的項(xiàng)的最大索引值。我們將用維基百科頁(yè)面中給出的一個(gè)公式計(jì)算這個(gè)索引值。我們需要做的是使用log函數(shù),把對(duì)數(shù)的底數(shù)轉(zhuǎn)換一下。不需要對(duì)計(jì)算的結(jié)果向下取整,本攻略的下一步驟將自動(dòng)完成取整操作。
n的計(jì)算結(jié)果是:
創(chuàng)建一個(gè)從1到n的數(shù)組。
arange函數(shù)是一個(gè)非常基本的函數(shù),想必大家都熟悉。為了內(nèi)容的完整性,我們這里還是專門提一下。
計(jì)算斐波那契數(shù)列。
有一個(gè)方便的公式,可以用來(lái)計(jì)算斐波那契數(shù)列。需要把黃金比例和上一步驟創(chuàng)建的數(shù)組作為該公式的輸入?yún)?shù)。
為了檢查計(jì)算的結(jié)果,把計(jì)算得到的斐波那契數(shù)列的前9個(gè)數(shù)打印出來(lái):
單元測(cè)試用來(lái)測(cè)試一個(gè)小的代碼單元(例如函數(shù))的正確性。可以用單元測(cè)試代替打印語(yǔ)句,這個(gè)作為練習(xí)留給讀者自己完成。
順便注意一下,數(shù)列的第一項(xiàng)是1。上述代碼生成了我們預(yù)期的數(shù)列:
如果你愿意,可以把這個(gè)結(jié)果用在單元測(cè)試中。
轉(zhuǎn)換為整數(shù)。
這個(gè)步驟是可選的,但我想最終結(jié)果最好還是轉(zhuǎn)換為整數(shù)。實(shí)際上,我是想介紹astype函數(shù)。
上述代碼生成如下結(jié)果(簡(jiǎn)潔起見,省略了部分內(nèi)容):
選出數(shù)列中取值為偶數(shù)的項(xiàng)。
本攻略要求我們選出數(shù)列中取值為偶數(shù)的項(xiàng)。如果已經(jīng)學(xué)習(xí)過了上一章中的布爾型索引,這應(yīng)該不難實(shí)現(xiàn)。
我們得到的是:
本攻略的完整代碼如下。
攻略小結(jié)
在本章中,我們用到了sqrt、log、arange、astype和sum函數(shù)。它們的功能描述如下:
函數(shù)
功能描述
sqrt
計(jì)算數(shù)組元素的平方根
log
計(jì)算數(shù)組元素的自然對(duì)數(shù)
arange
生成一個(gè)指定范圍的數(shù)組
astype
把數(shù)組元素轉(zhuǎn)換為指定的數(shù)據(jù)類型
sum
計(jì)算數(shù)組元素之和
總結(jié)
以上是生活随笔為你收集整理的python偶数数列求和_Numpy 斐波纳契数列求和的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建立主DNS区域和辅助DNS区域的最佳实
- 下一篇: web容器解析