日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python/R語言分別實現(xiàn)斐波那契數列的示例詳解_python

作者:銘記yu心 ? 更新時間: 2022-05-27 編程語言

前言

此專欄為python與R語言對比學習的文章;以通俗易懂的小實驗,帶領大家深入淺出的理解兩種語言的基本語法,并用以實際場景!感謝大家的關注,希望對大家有所幫助。

“博觀而約取,厚積而薄發(fā)!”謹以此言,望諸君共勉

本文將前兩個小實驗整理拼湊再了一起 ;分別是“年齡計算”、“斐波那契數列”。具體的項目介紹見下文。

1、年齡計算

有 5 個人坐在一起,問第五個?人多少歲?他說比第 4 個人大 2 歲。問第 4 個 人歲數,他說比第 3 個人大 2 歲。問第三個人,又說比第 2 人大兩歲。問第 2 個人,說比第一個人大兩歲。最后問第一個人,他說是 10 歲。請問第五個人多 大?

這個問題簡化之后便是求一個等比數列的第 5 項是多少!

1.1 圖解問題

根據數學思維即可得出該數列為 1 組等差數列:

an=2(n?1)+10

既然問題已經提取到這兒了,那接下來就只剩如何用代碼實現(xiàn)了:

1.2 代碼解決

1.2.1 Python實現(xiàn)代碼

def age():
    #互動界面——輸入查詢的第幾個
    n = int(input("請問你需要第幾個人年齡:"))
    no_1 = 10
    if n<0:
        print("請輸入大于0的數值!!!")
    else:
        #主要計算數列
        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 實驗小結

這個實驗的代碼部分并不難,僅需要輸入數學公式即可。

代碼部分均使用函數的形式進行包裝方便理解;函數內部采用互動的方式,便于拓展使用。

2、斐波那契數列

斐波那契數列(Fibonacci sequence),又稱黃金分割數列,因數學家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……

在數學上,斐波那契數列以如下被以遞推的方法定義:

現(xiàn)代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用。在數學中更是應用廣泛,各種推理推論在這就不展開了,畢竟還是以代碼生成斐波那契數列為主。

2.1 圖解問題

根據數列的通項式可得出如圖的加法;顯然這是種向下的循環(huán)加法。則定以for循環(huán)對該數列每一個值的單獨輸出。

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("請輸入需要打印的斐波那數列的數據個數(從 1 開始):"))
fib(num)

2.2.2 R語言代碼實現(xiàn)

fib <- function(n){
  n <-  as.integer(
    readline("請輸入需要打印的斐波那數列的數據個數(從 1 開始):"))
  a = b = 1
  for (i in 1:n) {
    print(a,end = " ")
    temp <- a
    a <- b
    b <- a + temp
  }
}
test_2 <- function(){
  cat("斐波那契數列為:")
  fib(n) 
}
test_2()

2.3 實驗小結

在圖解之后,這個數列的輸出已經不再困難,均是使用 for 循環(huán)加上 temp 指針的方式。這里不展開介紹指針的移動規(guī)則,如有需要留言就可。然而在每次循環(huán)時將得出的值進行輸出就能不被覆蓋。

代碼部分均使用函數的形式進行包裝方便理解;函數內部采用互動的方式,便于拓展使用。

總結

本文中Python與R語言語法小結

獲取鍵盤輸入值——input()函數 VS readline()函數

原文鏈接:https://blog.csdn.net/weixin_42873544/article/details/123573163

欄目分類
最近更新