(递推1)兔子繁殖问题

有一对小兔子,小兔子过Z个月长大,一对大兔子X个月生Y对小兔子,求n个月后的兔子总对数。
当xyz都是1的时候,f(n)=f(n-1)+f(n-2)
问题一:
有一对小兔子,小兔子过5个月长大,一对大兔子3个月生4对小兔子,求n个月后的兔子总对数。
f(n)表示n个月后的兔子总数
f(n)=n那个月原有的兔子+n那个月新生的兔子
n那个月原有的兔子是:f(n-1)
n那个月新生的兔子是:n-x那个月成熟的兔子,也就是n-x-z那个月所有的兔子,因为n-x-z那个月所有的兔子在n-x那个月的时候都成熟了

故f(n)= f(n-1)+ f(n-x-z) * (y/x);这里必须是* (y/x),这是每个月生产的。(那个月成熟的兔子在一个月里生的小兔子的个数)

这个表达式也适合于一个月生一对的情况;
一个月的情况可以看成成熟+不成熟,和原来的+新生的。而多个月的情况看成后一种比较好,因为看成前一种会超级麻烦。

到本题,也就是f(n)= f(n-1)+ f(n-8)*(4/3);

问题二:
有一对小兔子,小兔子过5个月长大,一对大兔子3个月生4对小兔子,求n个月后的大兔子总对数。
f(n)表示大兔子,那么
f(n)= 上个月的大兔子数+这个月新长成的大兔子数
上个月的大兔子数是:f(n-1)
这个月新长成的大兔子数是:因为兔子需要5个月长大,所以应该是n-5个月那个月的新出生的兔子,
n-5个月那个月的新出生的兔子是n-5-3那个月的所有大兔子数,因为大兔子经过三个月才能有小兔子,
故f(n)=f(n-1)+f(n-5-3)*(4/3);

#include <iostream>
using namespace std;
//前八个月的兔子总对数都是一对,initTotalRabbit[1]表示第一个月 
double initTotalRabbit[9]={0,1,1,1,1,1,2.3333,3.6667,5};
double calcTotalRabbit(int n){if(n<=8)return initTotalRabbit[n];elsereturn calcTotalRabbit(n-1)+ calcTotalRabbit(n-8)*(4.0/3);
} //前五个月的大兔子数目为0,initBigRabbit[1]表示第一个月的大兔子数目
double initBigRabbit[9]={0,0,0,0,0,0,1,1,1};
double calcBigRabbit(int n){if(n<=8)return initBigRabbit[n];elsereturn calcBigRabbit(n-1)+ calcBigRabbit(n-5)*(4.0/3);
} 
int main(){for(int i=1;i<=20;i++){double total=calcTotalRabbit(i);double big=calcBigRabbit(i);printf("月份:%3d    兔子总对数:%6.2lf    大兔子对数:%6.2lf    小兔子对数:%6.2lf\n",i,total,big,total-big);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七年级计算机教学质量分析,七年级数学期末教学质量分析报告

七年级数学期末教学质量分析报告提高教育教学质量是学校工作的重中之重,扎实进行课堂教学改革是提高质量的有力保证,是前提条件。下面是小编为大家整理的七年级数学期末教学质量分析报告&#xff0c;欢迎阅读。七年级数学期末教学质量分析报告一一、试卷的主要特点该试卷既注重…

上下位机串口通信 python_怎么将图片通过串口发送给下位机?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼是这样的&#xff0c;本人小白一枚&#xff0c;最近有一个想法&#xff0c;想用python做上位机 C51做下位机做一台激光打印机&#xff0c;两个我都刚学不久&#xff0c;所以都不太了解&#xff0c;图像处理我用了抖动算法&#xff…

(数论1)质因数

质因数&#xff08;素因数或质因子&#xff09;在数论里是指能整除给定正整数的质数 质数定义为在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数。 正整数的因数分解可将正整数表示为一连串的质因子相乘&#xff0c;质因子如重复可以用指数表示 除了1以外&am…

做计算机工作的要专用手机吗,怎么在手机上完成工作?原来没有电脑手机还可以这样用...

用手机工作&#xff0c;放在功能机时代或者早期的智能手机时代&#xff0c;这个可能性很小。但是放在这个智能手机黑科技一年比一年厉害的时代来说&#xff0c;用手机来工作完全可能&#xff0c;至少一些简单的工作是可以在手机上实现的。因为手机可以借助一些自身的设计或者配…

(递归1)爬楼梯

题目描述 树老师爬楼梯&#xff0c;他可以每次走1级或者2级&#xff0c;输入楼梯的级数&#xff0c;求不同的走法数 例如&#xff1a;楼梯一共有3级&#xff0c;他可以每次都走一级&#xff0c;或者第一次走一级&#xff0c;第二次走两级 也可以第一次走两级&#xff0c;第二…

ajax success返回 .net,asp.net-mvc-返回JsonResult的ASP.Net MVC Ajax调用

我开始学习ASP.Net MVC(候选发行版),但遇到了一些麻烦.我可能只是很挑剔,但我想问一下.我想使用内置的(扩展的)ASP.Net Ajax方法来调用我的控制器,该方法称为“ GetNames”,它返回一个JsonResult对象.我已经看到了使用$.getJSON()jQuery方法的示例,但我宁愿执行如下操作&#x…

参考文献标号字体_论文格式要求及字体大小

论文格式要求及字体大小论文既是探讨问题进行学术研究的一种手段&#xff0c;又是描述学术研究成果进行学术交流的一种工具。下面小编为大家整理了论文格式要求及字体大小&#xff0c;欢迎阅读&#xff01;一、封面题目&#xff1a;小二号黑体加粗居中。各项内容&#xff1a;四…

(递归2)汉诺塔

题目描述 约19世纪末&#xff0c;在欧州的商店中出售一种智力玩具&#xff0c;在一块铜板上有三根杆&#xff0c;最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上&#xff0c;条件是一次只能移动一个盘&#xff0c;且不…

与服务器传文件格式,客户端如何向服务器传文件格式

客户端如何向服务器传文件格式 内容精选换一换已获取该弹性云服务器的密钥文件&#xff0c;如未获取&#xff0c;请参见获取弹性云服务器的密钥文件。弹性云服务器已经绑定弹性IP地址。已配置安全组入方向的访问规则。如果您是在Windows操作系统上登录Linux&#xff0c;可以按照…

docker linux 快速开窗口_技术|如何使用 Docker 快速配置数据科学开发环境?

数据科学开发环境配置起来让人头疼&#xff0c;会碰到包版本不一致、错误信息不熟悉和编译时间漫长等问题。这很容易让人垂头丧气&#xff0c;也使得迈入数据科学的这第一步十分艰难。而且这也是一个完全不常见的准入门槛。还好&#xff0c;过去几年中出现了能够通过搭建孤立的…

(递归3)最大公约数

题目给定两个正整数&#xff0c;求它们的最大公约数。 输入 输入一行&#xff0c;包含两个正整数(<1,000,000,000)。 输出 输出一个正整数&#xff0c;即这两个正整数的最大公约数。 样例输入 6 9 样例输出 3 提示 求最大公约数可以使用辗转相除法&#xff1a; 假…

服务器搭建维护,服务器搭建维护方法

服务器搭建维护方法 内容精选换一换登录Windows操作系统的弹性云服务器时&#xff0c;需使用密码方式登录。因此&#xff0c;用户需先根据创建弹性云服务器时使用的密钥文件&#xff0c;获取该弹性云服务器初始安装时系统生成的管理员密码(Administrator帐户或Cloudbase-init设…

(递归4)放苹果

描述 把M个同样的苹果放在N个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f;&#xff08;用K表示&#xff09;5&#xff0c;1&#xff0c;1和1&#xff0c;5&#xff0c;1 是同一种分法。 输入 第一行是测试数据的数目t&…

魔兽怀旧服服务器怎么修改,《魔兽世界怀旧服》转服功能怎么用 转服功能使用方法教程...

导读魔兽世界怀旧服不少玩家都处在高负载服务器中&#xff0c;这不仅对于服务器压力太大&#xff0c;而且对于玩家的游戏体验也不好&#xff0c;近期魔兽世界怀旧服免费角色转移功能开放&#xff0c;缓解玩家的压力和带来更好的游戏体验&#xff0c;下面小编就给大家带来魔兽..…

mac os touch命令_Mac系统忘记开机密码怎么办?

Hi~我是系统派~使用Windows系统的小伙伴都知道忘记开机密码可以通过PE工具解除实在不行还可以重装系统如果你手上的是Mac电脑同样也是不记得登录密码了有没有相似的解决方案呢&#xff1f;本教程教你两种Mac系统重置开机密码的方法万一哪天真的不记得密码了可以尝试解除千万别干…

(递归5)全排列

题目&#xff1a; 算法竞赛入门经典例7-2-1&#xff1a;输入整数n&#xff0c;按字典序从小到大的顺序输出前n个数的 所有排列 A&#xff1a;已确定的前缀数列 S&#xff1a;需要进行全排列的元素集合 伪代码&#xff1a; void print_permutation(序列A, 集合S) { if(…

sql2012怎样修改服务器名称,sql2012服务器名称怎么设置

sql2012服务器名称怎么设置 内容精选换一换您可以借助报表服务制作各种各样的报表&#xff0c;无论是简单的还是复杂的报表&#xff0c;同时系统提供订阅功能方便用户对报表进行订阅。本文主要介绍RDS使用SSRS(Reporting Services)报表服务。微软的Microsoft SQL Server产品中包…

超声波测距仪编程_超声波测距仪参考(含原理图程序)

1绪论当前社会经济的不断发展和工业科学技术的不断提高&#xff0c;汽车已逐渐进入不少百姓家。汽车使用数量的不断增加&#xff0c;从而由此导致的倒车交通安全问题也非常严重&#xff0c;道路交通压力增加&#xff0c;交通安全问题也是面临严峻挑战。在面临如此严峻的交通安全…

(回溯4)部分全排列

题目设有n个整数的集合&#xff5b;1&#xff0c;2&#xff0c;…&#xff0c;n&#xff5d;&#xff0c;从中任意取出r个数进行排列&#xff08;r< n&#xff09;&#xff0c;试着列出所有排列 #include <iostream> using namespace std; bool vis[100]; int total0…

vue.js将本地文件上传到ftp服务器,vue项目使用FTP传输部署项目服务器,node命令编写...

#!/usr/bin/env nodevar fs require(fs); // 引入需要模块var vinylFs require( vinyl-fs );var ftp require( vinyl-ftp );var vueConfig require(../vue.config) //这里是为了抓取打包文件名称var env process.argv[2]?process.argv[2].replace(…