網(wǎng)站首頁 編程語言 正文
前言
此專欄為python與R語言對(duì)比學(xué)習(xí)的文章;以通俗易懂的小實(shí)驗(yàn),帶領(lǐng)大家深入淺出的理解兩種語言的基本語法,并用以實(shí)際場(chǎng)景!感謝大家的關(guān)注,希望對(duì)大家有所幫助。
“博觀而約取,厚積而薄發(fā)!”謹(jǐn)以此言,望諸君共勉
本文將前兩個(gè)小實(shí)驗(yàn)整理拼湊再了一起 ;分別是“年齡計(jì)算”、“斐波那契數(shù)列”。具體的項(xiàng)目介紹見下文。
1、年齡計(jì)算
有 5 個(gè)人坐在一起,問第五個(gè)?人多少歲?他說比第 4 個(gè)人大 2 歲。問第 4 個(gè) 人歲數(shù),他說比第 3 個(gè)人大 2 歲。問第三個(gè)人,又說比第 2 人大兩歲。問第 2 個(gè)人,說比第一個(gè)人大兩歲。最后問第一個(gè)人,他說是 10 歲。請(qǐng)問第五個(gè)人多 大?
這個(gè)問題簡化之后便是求一個(gè)等比數(shù)列的第 5 項(xiàng)是多少!
1.1 圖解問題
根據(jù)數(shù)學(xué)思維即可得出該數(shù)列為 1 組等差數(shù)列:
an=2(n?1)+10
既然問題已經(jīng)提取到這兒了,那接下來就只剩如何用代碼實(shí)現(xiàn)了:
1.2 代碼解決
1.2.1 Python實(shí)現(xiàn)代碼
def age(): #互動(dòng)界面——輸入查詢的第幾個(gè) n = int(input("請(qǐng)問你需要第幾個(gè)人年齡:")) no_1 = 10 if n<0: print("請(qǐng)輸入大于0的數(shù)值!??!") else: #主要計(jì)算數(shù)列 no_n = (n-1)*2+no_1 return n,no_n print("第{}個(gè)人的年齡是:{}歲。".format(*age()))
1.2.1 R語言實(shí)現(xiàn)代碼
caixiang <- function(){ one_age <-as.integer(readline('請(qǐng)輸入第一個(gè)人的年齡:')) n <- as.integer(readline("請(qǐng)輸入查詢的第幾個(gè)人:")) n_age <<- one_age + 2*(n-1) return(n_age) } test_1 <- function(){ caixiang() cat("查詢的年齡為:",n_age) } test_1()
1.3 實(shí)驗(yàn)小結(jié)
這個(gè)實(shí)驗(yàn)的代碼部分并不難,僅需要輸入數(shù)學(xué)公式即可。
代碼部分均使用函數(shù)的形式進(jìn)行包裝方便理解;函數(shù)內(nèi)部采用互動(dòng)的方式,便于拓展使用。
2、斐波那契數(shù)列
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,因數(shù)學(xué)家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、……
在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:
現(xiàn)代物理、準(zhǔn)晶體結(jié)構(gòu)、化學(xué)等領(lǐng)域,斐波納契數(shù)列都有直接的應(yīng)用。在數(shù)學(xué)中更是應(yīng)用廣泛,各種推理推論在這就不展開了,畢竟還是以代碼生成斐波那契數(shù)列為主。
2.1 圖解問題
根據(jù)數(shù)列的通項(xiàng)式可得出如圖的加法;顯然這是種向下的循環(huán)加法。則定以for循環(huán)對(duì)該數(shù)列每一個(gè)值的單獨(dú)輸出。
2.2 代碼實(shí)現(xiàn)
2.2.1 Python代碼實(shí)現(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("請(qǐng)輸入需要打印的斐波那數(shù)列的數(shù)據(jù)個(gè)數(shù)(從 1 開始):")) fib(num)
2.2.2 R語言代碼實(shí)現(xiàn)
fib <- function(n){ n <- as.integer( readline("請(qǐng)輸入需要打印的斐波那數(shù)列的數(shù)據(jù)個(gè)數(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í)驗(yàn)小結(jié)
在圖解之后,這個(gè)數(shù)列的輸出已經(jīng)不再困難,均是使用 for 循環(huán)加上 temp 指針的方式。這里不展開介紹指針的移動(dòng)規(guī)則,如有需要留言就可。然而在每次循環(huán)時(shí)將得出的值進(jìn)行輸出就能不被覆蓋。
代碼部分均使用函數(shù)的形式進(jìn)行包裝方便理解;函數(shù)內(nèi)部采用互動(dòng)的方式,便于拓展使用。
總結(jié)
本文中Python與R語言語法小結(jié)
獲取鍵盤輸入值——input()函數(shù) VS readline()函數(shù)
原文鏈接:https://blog.csdn.net/weixin_42873544/article/details/123573163
相關(guān)推薦
- 2022-01-27 laravel6.2多用戶認(rèn)證分不同用戶表進(jìn)行驗(yàn)證登錄認(rèn)證
- 2022-08-10 C#對(duì)文件名智能排序的算法_C#教程
- 2022-09-21 使用注解實(shí)現(xiàn)Redis緩存功能_Redis
- 2022-07-26 msSQL中having的用處詳解_MsSql
- 2022-04-25 python變量賦值機(jī)制踩坑記錄_python
- 2024-07-13 IDEA無法使用@WebServlet()注解
- 2022-05-05 基于PyQt5制作數(shù)據(jù)處理小工具_(dá)python
- 2022-05-05 利用Python編寫一個(gè)記憶翻牌游戲_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支