广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python/R语言分别实现斐波那契数列的示例详解
  • 886
分享到

Python/R语言分别实现斐波那契数列的示例详解

2024-04-02 19:04:59 886人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1、年龄计算1.1 图解问题1.2 代码解决1.3 实验小结2、斐波那契数列2.1 图解问题2.2 代码实现2.3 实验小结总结前言 此专栏为python与R语言对比学习的文

前言

此专栏为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 指针的方式。这里不展开介绍指针的移动规则,如有需要留言就可。然而在每次循环时将得出的值进行输出就能不被覆盖。

代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。

总结

本文中Python与R语言语法小结

获取键盘输入值——input()函数 VS readline()函数

到此这篇关于Python/R语言分别实现斐波那契数列的示例详解的文章就介绍到这了,更多相关Python/R斐波那契数列内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python/R语言分别实现斐波那契数列的示例详解

本文链接: https://www.lsjlt.com/news/143729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python/R语言分别实现斐波那契数列的示例详解
    目录前言1、年龄计算1.1 图解问题1.2 代码解决1.3 实验小结2、斐波那契数列2.1 图解问题2.2 代码实现2.3 实验小结总结前言 此专栏为python与R语言对比学习的文...
    99+
    2022-11-13
  • Python/R语言如何分别实现斐波那契数列
    这篇文章主要为大家展示了“Python/R语言如何分别实现斐波那契数列”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python/R语言如何分别实现斐波那契数列”这篇文章吧。1、年龄计算有 5 ...
    99+
    2023-06-29
  • python实现斐波那契数列的方法示例
    介绍 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n...
    99+
    2022-06-04
    数列 示例 方法
  • C语言中斐波那契数列的三种实现方式(递归、循环、矩阵)
    目录一、递归二、循环三、矩阵《剑指offer》里讲到了一种斐波那契数列的 O(logN) 时间复杂度的实现,觉得挺有意思的,三种方法都记录一下。 一、递归    ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作