python生兔子问题(递归算法)_python递归实现斐波那契数列

python生兔子问题(递归算法)_python递归实现斐波那契数列兔子产子1.问题描述有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?2.问题分析兔子产子

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

兔子产子

 

1.问题描述

有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?
 

2.问题分析

兔子产子问题是一个有趣的古典数学问题,我们画一张表来找下兔子数的规律,如下表所示

月数 小兔子对数 中兔子对数 老兔子对数 兔子总对数
1 1 0 0 1
2 0 1 0 1
3 1 0 1 2
4 1 1 1 3
5 2 1 2 5
6 3 2 3 8
7 5 3 5 13

说明:不满1个月的兔子为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。

可以看出,每个月的兔子总数依次为1,1,2,3,5,8,13…这就是Fibonacci数列。总结数列规律即为从前两个月的兔子对数可以推出第3个月的兔子对数
 

3.算法设计

本题目是典型的迭代循环,即是个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值的过程。这种选代与这些因素有关:初值迭代公式选代次数。经过问题分析,算法可以描述为
fibn-1 = fiibn-1 = 1(n<3) 初值
fibn = fibn-1 + fibn-2(n≥3) 迭代公式
 
Python 语言來描述迭代公式即为fib=fibl+fib2,其中fib为当前新求出的免子对数,fibl 为前一个月的兔子对数,fib2为前两个月的免子对数,然后为下一次选代做准备,fib②给fib1①给fib2,进行如下的赋值 fib2=fib1, fibl=fib,要注意赋值的次序;选代次数由循环变量控制,为所求的月数。
 

4.完整程序

if __name__=="__main__":
    fib1 = 1
    fib2 = 1
    i = 1
    while i <= 15:  #每次求两个,因此循环变量循环到15
        print("%8d    %8d" %(fib1, fib2), end="      ")
        if i % 2 == 0:
            print()
        fib1 = fib1 + fib2  # 最新一个月的兔子数
        fib2 = fib1 + fib2  # 第4个月的兔子数
        i += 1
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166073.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Laravel 清空配置缓存

    Laravel 清空配置缓存

    2021年10月26日
  • python怎么调用api接口_偶尔的注解

    python怎么调用api接口_偶尔的注解swagger3的使用Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是sagger3(基于openApi3),而国内几乎没有sagger3使用的文档,百度搜出来的都是swagger2的使用,这篇文章将介绍如何在java中使用openApi3(swagger3)。相关介绍OpenAPIOpenApi是业界真正的api文档标准,其是由Swagg…

    2022年10月26日
  • 报错: Failed to install the following Android SDK packages as some licences have not been accepted.

    报错: Failed to install the following Android SDK packages as some licences have not been accepted.导入已有的工程,在build时出现了FailedtoinstallthefollowingAndroidSDKpackagesassomelicenceshavenotbeenaccepted.从此开启有点漫长的脱坑之路。出现这个为在解决后发现主要是两个问题:一个是sdkmanager没有更新;另一个原因是项目配置…

  • 无穷小分析理论_无穷小是一个过程

    无穷小分析理论_无穷小是一个过程一般读者对无穷小微积分只是略知一二,其实这是不够的。现将有关文章引用如下,供读者参考。袁萌 12月23日非标准分析概念又可称为实无穷小分析)(英语:Non-standardanalysis)是一个数学分支,它用严格定义的无穷小的数(infinitesimalnumber)的概念来构建数学分析大厦。1历史2动机2.1历史上的原因2.2教学上的原因2.3技术上的原因3无穷小分析的各种建立

  • tensorflow2.0卷积神经网络_python神经网络框架

    tensorflow2.0卷积神经网络_python神经网络框架卷积神经网络一般用来处理图像信息,对于序列这种一维的数据而言,我们就得采用一维的卷积,tensorflow中提供有专用的函数conv1d,各参数的使用说明如下:conv1d参数说明value输入数据,value的格式为:[batch,in_width,in_channels],batch为样本维,表示多少个样本,in_width为宽度维,表示样本的宽度,in_channels维通道维,表示样本有多少个通道。filters卷积核,filters的格式为:[filter_wi

  • 良心推荐JVM性能调优工具

    良心推荐JVM性能调优工具良心推荐JVM性能调优工具该工具源于几年前关注的一个阿里大佬专做jvm性能调优,现在已经创业开发出社区版的在线性能调优!我觉得很香就推荐给大家!工具地址https://console.perfma.com/下面简单介绍社区版三个产品XXFox-Java虚拟机参数分析参数查询:查询指定JVM参数的官方定义、使用方法、默认值、专家建议参数检查:对JVM参数的用法,赋值及组合进行正确性与合理性检查参数变迁:给出JVM参数在不同配置环境下推荐取值或替代参数参数优化:全面诊断JVM参数,给出综

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号