Python/R語言分別實現(xiàn)斐波那契數(shù)列的示例詳解
前言
此專欄為python與R語言對比學習的文章;以通俗易懂的小實驗,帶領大家深入淺出的理解兩種語言的基本語法,并用以實際場景!感謝大家的關注,希望對大家有所幫助。
“博觀而約取,厚積而薄發(fā)!”謹以此言,望諸君共勉
本文將前兩個小實驗整理拼湊再了一起 ;分別是“年齡計算”、“斐波那契數(shù)列”。具體的項目介紹見下文。
1、年齡計算
有 5 個人坐在一起,問第五個?人多少歲?他說比第 4 個人大 2 歲。問第 4 個 人歲數(shù),他說比第 3 個人大 2 歲。問第三個人,又說比第 2 人大兩歲。問第 2 個人,說比第一個人大兩歲。最后問第一個人,他說是 10 歲。請問第五個人多 大?
這個問題簡化之后便是求一個等比數(shù)列的第 5 項是多少!
1.1 圖解問題
根據(jù)數(shù)學思維即可得出該數(shù)列為 1 組等差數(shù)列:
an=2(n−1)+10
既然問題已經(jīng)提取到這兒了,那接下來就只剩如何用代碼實現(xiàn)了:
1.2 代碼解決
1.2.1 Python實現(xiàn)代碼
def age(): #互動界面——輸入查詢的第幾個 n = int(input("請問你需要第幾個人年齡:")) no_1 = 10 if n<0: print("請輸入大于0的數(shù)值!?。?) else: #主要計算數(shù)列 no_n = (n-1)*2+no_1 return n,no_n print("第{}個人的年齡是:{}歲。".format(*age()))
1.2.1 R語言實現(xiàn)代碼
caixiang <- function(){ one_age <-as.integer(readline('請輸入第一個人的年齡:')) n <- as.integer(readline("請輸入查詢的第幾個人:")) n_age <<- one_age + 2*(n-1) return(n_age) } test_1 <- function(){ caixiang() cat("查詢的年齡為:",n_age) } test_1()
1.3 實驗小結
這個實驗的代碼部分并不難,僅需要輸入數(shù)學公式即可。
代碼部分均使用函數(shù)的形式進行包裝方便理解;函數(shù)內(nèi)部采用互動的方式,便于拓展使用。
2、斐波那契數(shù)列
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,因數(shù)學家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個數(shù)列:1、1、2、3、5、8、13、21、34、……
在數(shù)學上,斐波那契數(shù)列以如下被以遞推的方法定義:
現(xiàn)代物理、準晶體結構、化學等領域,斐波納契數(shù)列都有直接的應用。在數(shù)學中更是應用廣泛,各種推理推論在這就不展開了,畢竟還是以代碼生成斐波那契數(shù)列為主。
2.1 圖解問題
根據(jù)數(shù)列的通項式可得出如圖的加法;顯然這是種向下的循環(huán)加法。則定以for循環(huán)對該數(shù)列每一個值的單獨輸出。
2.2 代碼實現(xiàn)
2.2.1 Python代碼實現(xiàn)
def fib(n): a,b = 1,1 # 循環(huán)打印 for i in range(n): print(a,end = " ") temp = a a = b b = temp + b num = int(input("請輸入需要打印的斐波那數(shù)列的數(shù)據(jù)個數(shù)(從 1 開始):")) fib(num)
2.2.2 R語言代碼實現(xiàn)
fib <- function(n){ n <- as.integer( readline("請輸入需要打印的斐波那數(shù)列的數(shù)據(jù)個數(shù)(從 1 開始):")) a = b = 1 for (i in 1:n) { print(a,end = " ") temp <- a a <- b b <- a + temp } } test_2 <- function(){ cat("斐波那契數(shù)列為:") fib(n) } test_2()
2.3 實驗小結
在圖解之后,這個數(shù)列的輸出已經(jīng)不再困難,均是使用 for 循環(huán)加上 temp 指針的方式。這里不展開介紹指針的移動規(guī)則,如有需要留言就可。然而在每次循環(huán)時將得出的值進行輸出就能不被覆蓋。
代碼部分均使用函數(shù)的形式進行包裝方便理解;函數(shù)內(nèi)部采用互動的方式,便于拓展使用。
總結
本文中Python與R語言語法小結
獲取鍵盤輸入值——input()函數(shù) VS readline()函數(shù)
到此這篇關于Python/R語言分別實現(xiàn)斐波那契數(shù)列的示例詳解的文章就介紹到這了,更多相關Python/R斐波那契數(shù)列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python自動化測試三部曲之unittest框架的實現(xiàn)
這篇文章主要介紹了python自動化測試三部曲之unittest框架的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10Tensorflow2.1實現(xiàn)Fashion圖像分類示例詳解
這篇文章主要為大家介紹了Tensorflow2.1實現(xiàn)Fashion圖像分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11簡單介紹Python的Django框架的dj-scaffold項目
這篇文章主要介紹了簡單介紹Python的Django框架的dj-scaffold項目,用于輔助Django框架的目錄設置,需要的朋友可以參考下2015-05-05