Python/R语言分别实现斐波那契数列的示例详解
作者:铭记yu心 发布时间:2022-03-11 10:49:12
前言
此专栏为python与R语言对比学习的文章;以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助。
“博观而约取,厚积而薄发!”谨以此言,望诸君共勉
本文将前两个小实验整理拼凑再了一起 ;分别是“年龄计算”、“斐波那契数列”。具体的项目介绍见下文。
1、年龄计算
有 5 个人坐在一起,问第五个?人多少岁?他说比第 4 个人大 2 岁。问第 4 个 人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多 大?
这个问题简化之后便是求一个等比数列的第 5 项是多少!
1.1 图解问题
根据数学思维即可得出该数列为 1 组等差数列:
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、……
在数学上,斐波那契数列以如下被以递推的方法定义:
现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。在数学中更是应用广泛,各种推理推论在这就不展开了,毕竟还是以代码生成斐波那契数列为主。
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 指针的方式。这里不展开介绍指针的移动规则,如有需要留言就可。然而在每次循环时将得出的值进行输出就能不被覆盖。
代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。
来源:https://blog.csdn.net/weixin_42873544/article/details/123573163


猜你喜欢
- python将a.txt的内容复制到b.txt 中# 1. 用r方式打开a.txtf = open("a.txt",&q
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据
- 源码解读Bootstrap按钮按钮组按钮组和下拉菜单组件一样,需要依赖于bootstrap.js。使用“btn-group”的容器,把多个按
- 一.问题使用黄金分割法来计算二.代码#黄金分割法python求解PPT上第一个例题#因为函数要求解最大值而这个方法一般求解最小值所以把函数取
- 从txt种获取数据 并且通过动态曲线显示import numpy as np import matplotlib.pyplot as plt
- 环境:Zend Studio 8.0Zend Studio是PHP开发者的首选开发工具,其地位相当于微软开发工具中的Visual Studi
- Microsoft SQL Server 表不应该包含重复行和非唯一主键。为简洁起见,在本文中我们有时称主键为“键”或“PK”,但这始终表示
- 本文实例为大家分享了python遗传算法的具体代码,供大家参考,具体内容如下1、基本概念遗传算法(GA)是最早由美国Holland教授提出的
- 前言本文主要介绍通过Python提取csv文件中数据,并对数据进行处理。编译器:Anaconda3 语言:Python3一、使用pandas
- 前言最近尝试重新封装XMLHttpRequest,在发post请求的时候,发现express通过req.body获取不到数据,req.bod
- 小计: 开发中遇到子组件需要调用兄弟组件中的方法,如下写个小demo记录下心得,如果你有好的方法,请到评论区域指教父组件示例代码:组件功能解
- 本来想等到IE8正式发布时再在blog中写段代码,用来提示IE6用户升级到IE8的,不过貌似IE 8已经RTM了,今天又正好看到这个“升级I
- 正则表达式正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为&q
- 锁机制NOLOCK和READPAST的区别。1. 开启一个事务执行插
- 一、继承与java的继承不同python支持多继承,如Person类同时继承Animal类和Species类可以这样写:class Anim
- 我们前期开发了一个只有公司客服人员才能使用的系统——有限的几个客服人员。就是这有限的几个客服人员前几天突然就提出这样的问题:我们每隔很短一段
- python datetime 和时间戳互转import datetime, timenow = datetime.datetime.now
- http://serverName/appName/module/action/id/1/这个就是pathinfo模式在不考虑路由的情况下,
- 本文实例讲述了Python判断有效的数独算法。分享给大家供大家参考,具体如下:一、题目判断一个 9x9 的数独是否有效。只需要根据以下规则,
- 1、加字段:alter table 表名 ADD 字段名 类型;eg:alter table sys_cwzd ADD SCCLLJ VAR