摘    要: 计算思维的构建有助于帮助学生将实际问题转换为透明易懂的框架算法, 并借助计算机解决。以电影《疯狂动物城》中的兔子繁殖问题为例, 引出斐波那契数列, 引导学生将数学表达式转化成计算机编程语言, 进而通过Matlab软件进行问题的求解。

关键词:计算思维; 斐波那契数列; Matlab;

Abstract: The construction of computational thinking helps students to transform practical problems into transparent and understandable framework algorithms and solve them with computers.Taking the rabbit breeding problem in the movie Zootopia as an example, the Fibonacci sequence is derived.This paper tries to guide students to translate mathematical expressions into computer programming languages, and then solve problems through MATLAB software.

Keyword: computational thinking; Fibonacci sequence; MATLAB;

计算思维最早是卡内基梅隆大学计算机科学系主任周以真教授提出的, 意在运用计算机科学的思维方式进行问题求解, 本质上源自数学思维。课堂上培养学生的计算思维, 第一要用计算的思维对要解决的问题进行分析和描述, 将其转化为一种数学上的语言表达;第二要在数学表达的基础上, 找到解决问题的方法 (也被称为是算法框架) ;第三要通过算法框架结合计算机, 转化成适合计算机运行的编程语言。

一、问题的提出

电影《疯狂动物城》中有一个关于兔子繁衍能力的细节。兔子Judy8岁的时候有275个兄弟姐妹, 离开兔窝镇的时候计数牌的数字在飞速增加。按兔子的繁殖能力 (兔子在第二月就成熟了, 第三个月初就可以繁殖) , 15年后Judy去Zootopia时, 她的家族会有多少成员? (兔子年龄寿命是5-12岁, 所以电影中所说的8岁有点拟人化了, 先暂时忽略掉)

二、Fibonacci数列的引入

Fibonacci数列[1]是数学家斐波那契以研究兔子繁殖为例研究的数列, 故称“兔子数列”, 又称为黄金分割数列。这个数列在物理、化学等领域都有广泛的应用。

根据这一数列, 结合实际情况先假设几个条件:

第一个月初有一对刚诞生的兔子;

第二个月之后 (第三个月初) 它们可以生育;

从第三个月开始每个月每对可以生育的兔子就会诞下一对新兔子;

兔子没有死去。

我们按照以上假设用图形的方式来展示前几个月兔子的繁殖的数目, 详见图1。

图1 兔子繁殖状态

以上展示的数列形式就是Fibonacci数列, 用数列的通项表示为:

用表格列举法显示Fibonacci数列的前15项如表1所示。

表1 15个月的兔子繁殖状态

三、问题的解决

当Judy家庭成员人数是139对, 大约在数列的第12项, 则15年后即再过180个月, 也就是要求出Fibonacci数列的第192项, 采取递推的形式即可求出问题。

四、计算机matlab程序的实现

从这个数列的通项中可以看出这个数列是递推数列, 采用循环算法:

定义完数列后, 就可以想求第几项就求第几项, 如问题中要求第192项, 输入f (192) , 即可求得15年后Judy的家庭成员人数, 问题得以解决。

这是其中一种用matlab算法[2]编程实现的思路, 学生可以试着用学过的C语言[3]中的while语句来实现这种循环的递推关系, 也可以用学过的其它语言来解决这个编程问题。

五、课堂扩展

科学家研究Fibonacci数列后发现, 随着数列中n的取值无限增加, 前一项与后一项的比的极限:, 这个数是有名的黄金分割数。[4]黄金分割点是一种数学上的比例关系, 让生活中的事物具有完美的比例性。课后学生可以通过网络资料了解这一数列在自然界以及其它方面的应用和存在情况。

参考文献:

[1]郑英元.斐波那契数列[J].数学教学, 2009, (2) :49.

[2]曹艳华, 吕广红.几种求广义斐波那契数列的Matlab实现方法[J].大学教育, 2016, (1) :96-97.

[3]孙义欣, 宋大伟.斐波那契数列问题的C语言教学实施探讨[J].电脑编程技巧与维护, 2012, (16) :151-152.

[4]蔡克, 吴敏.黄金分割与斐波那契数列[J].九江职业技术学院学报, 2003, (3) :60-61.

matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用相关推荐

  1. 兔子繁殖问题 斐波那契数列 java实现

    兔子繁殖问题 斐波那契数列 java实现 问题描述 一对兔子,从出生后第3个月起每个月都生一对兔子. 小兔子长到第3个月开始每个月又生一对兔子. 假如兔子都不死, 请问第1个月出生的一对兔子,第n个月 ...

  2. java递归方法编写兔子繁殖_2018-04-15 斐波那契数列(兔子繁殖数列)

    费波那契数列(兔子繁殖数列) 兔子在出生两个月后,就有繁殖能力,一对成年而有繁殖力的兔子每个月能生出一对小兔子来.假设一年以后所有兔子都不死,那么一对小兔子一年以后可以繁殖多少对兔子? 我们来分析一下 ...

  3. python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

    本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...

  4. 斐波那契数列是个啥(兔子数列)]

    [斐波那契数列是个啥(兔子数列)] 背景 这是我在公交车上突然就想起了这个话题,之后总结了一下,很简单: 斐波那契在<计算之术>这本书中,提出了一个问题:在第一个月有一对刚出生的小兔子,在 ...

  5. 神奇的兔子序列(斐波那契数列)

    14天阅读挑战赛 神奇的兔子序列 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每月会生1对兔子,兔子永不死去.那么,由1对初生兔子开始,12个月后会有多少 ...

  6. [剑指Offer]斐波那契数列、跳台阶、兔子数量问题(递归、非递归)(Java)

    剑指Offer题目 斐波那契数列 题目描述 [剑指Offer 7]大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). [剑指Offer 8]一只青蛙 ...

  7. JavaScript初级玩法(3)—兔子问题(斐波那契数列)

    问题 有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对兔子关在里面.已知一对兔子每一个月可以生一对小兔子,但是一对兔子要从出生后第三个月才开始生小兔子假如一年内没有发生死亡,则一对兔子一年 ...

  8. 【趣学算法】神奇的兔子序列(斐波那契数列)

    14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算 ...

  9. 兔子生育问题·斐波那契数列·python

    小明考试非常好,妈妈为了奖励小明,给一对刚刚出生的兔子,     兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,     假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子( ...

最新文章

  1. POJ 1094 Sorting It All Out (拓扑排序)
  2. 骁龙845_骁龙845为什么这么快就不受欢迎了?手机更新节奏有多快
  3. oracle join详解,inner join和left join之间的区别详解
  4. php xml 格式化,php简单处理XML数据的方法示例
  5. osg多线程_尝试使用Osg编译上下文实现多线程编译显示列表--总结
  6. 利用 Apache 为个人用户创建 web 站点及其报错处理
  7. 人生第一个深入理解的DFS题 HDU 1016
  8. Facebook开源看图问答模型Pythia:拿下VQA比赛冠军就靠它
  9. LeetCode33. 搜索旋转排序数组(二分查找)
  10. java实现地图导航功能吗_关于微信LBS 升级版后SOSO 地图用JAVA 实现导航功能
  11. Support Vector Machines
  12. Eclipse-cpp-2022-03下载地址
  13. [BZOJ4487] [JSOI2015]染色问题
  14. 计算机共享网络的账号密码怎么设置密码,怎样才能给win10共享设置密码的操作方法...
  15. dataguard修改redo大小、添加redo等操作
  16. 红楼梦——诗词鉴赏之芙蓉女儿诔
  17. 万物互联时代的兴起及其边缘算法效应
  18. IDM UEStudio 19中文版
  19. 盛世昊通董车长2.0“后“积薄发,点爆汽车后市场
  20. 投简历一直没有回应,原因竟然是...

热门文章

  1. JS根据分数,计算名次(分数相同名次相同)
  2. Angular中响应式表单 FormBuilder、FormControl 、FormGroup、FormArray、setControl、setValue用法总结
  3. vue-cli+webpack在生成的项目中使用bootstrap的方法
  4. 戴尔推出PowerEdge T30,主打小型办公和家庭办公市场
  5. java常见面试题及答案 1-10(基础篇)
  6. 【数据结构笔记19】File Transfer的C语言实现,集合的简化表示,按秩归并,路径压缩
  7. 数字后端基本概念介绍<IO Cluster>
  8. python 循环输入_python入门(用户输入和while循环)
  9. mysql定制化_【MySQL技巧】定制你的MySQL命令行
  10. android判断是否被点击方法,android 中有没有判断imageview是否以被单击的函数方法?...