左手Python 右手R —— 年龄计算、斐波那契数列
2022/3/18 20:58:52
本文主要是介绍左手Python 右手R —— 年龄计算、斐波那契数列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
左手Python 右手R —— 年龄计算、斐波那契数列
- 前言
- 1、年龄计算
- 1.1 图解问题
- 1.2 代码解决
- 1.2.1 Python实现代码
- 1.2.1 R语言实现代码
- 1.3 实验小结
- 2、斐波那契数列
- 2.1 图解问题
- 2.2 代码实现
- 2.2.1 Python代码实现
- 2.2.2 R语言代码实现
- 2.3 实验小结
- 总结
- 创作不易,都浏览到这儿了,看官可否将下面的收藏点赞帮忙点亮。
前言
此专栏为python与R语言对比学习的文章;以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助。
“博观而约取,厚积而薄发!”谨以此言,望诸君共勉
本文将前两个小实验整理拼凑再了一起 ;分别是“年龄计算”、“斐波那契数列”。具体的项目介绍见下文。
1、年龄计算
有 5 个人坐在一起,问第五个⼈人多少岁?他说比第 4 个人大 2 岁。问第 4 个 人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多 大?
这个问题简化之后便是求一个等比数列的第 5 项是多少!
1.1 图解问题
根据数学思维即可得出该数列为 1 组等差数列:
a
n
=
2
(
n
−
1
)
+
10
a_{n}=2(n-1)+10
an=2(n−1)+10
既然问题已经提取到这儿了,那接下来就只剩如何用代码实现了:
1.2 代码解决
1.2.1 Python实现代码
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语言实现代码
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、……
在数学上,斐波那契数列以如下被以递推的方法定义:
F
(
n
)
=
{
0
n=0
1
n=1
F
(
n
−
1
)
+
F
(
n
+
2
)
n>1
F(n)=\left\{\begin{array}{ll} 0 & \textrm{n=0}\\ 1 & \textrm{n=1}\\ F(n-1)+F(n+2) & \textrm{n>1} \end{array} \right.
F(n)=⎩⎨⎧01F(n−1)+F(n+2)n=0n=1n>1
在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。在数学中更是应用广泛,各种推理推论在这就不展开了,毕竟还是以代码生成斐波那契数列为主。
2.1 图解问题
根据数列的通项式可得出如图的加法;显然这是种向下的循环加法。则定以for循环对该数列每一个值的单独输出。
2.2 代码实现
2.2.1 Python代码实现
def fib(n): a,b = 1,1 # 循环打印 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语言代码实现
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 循环加上 temp 指针的方式。这里不展开介绍指针的移动规则,如有需要留言就可。然而在每次循环时将得出的值进行输出就能不被覆盖。
代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。
总结
- 本文中Python与R语言语法小结
获取键盘输入值——input()函数 VS readline()函数
for循环——作为最常见的循环体实际细节请查看往期文章
这是左手Python右手R系列的第一片文章,希望大家能喜欢这个系列。
创作不易,都浏览到这儿了,看官可否将下面的收藏点赞帮忙点亮。
这篇关于左手Python 右手R —— 年龄计算、斐波那契数列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南