11 Mortal Fibonacci Rabbits
Problem
Recall the definition of the Fibonacci numbers from “Rabbits and Recurrence Relations”, which followed the recurrence relation Fn=Fn−1+Fn−2Fn=Fn−1+Fn−2 and assumed that each pair of rabbits reaches maturity in one month and produces a single pair of offspring (one male, one female) each subsequent month.
Our aim is to somehow modify this recurrence relation to achieve a dynamic programming solution in the case that all rabbits die out after a fixed number of months. See Figure 4 for a depiction of a rabbit tree in which rabbits live for three months (meaning that they reproduce only twice before dying).
Given: Positive integers n≤100n≤100 and m≤20m≤20.
Return: The total number of pairs of rabbits that will remain after the nn-th month if all rabbits live for mm months.
Sample Dataset
6 3
Sample Output
4
# coding=utf-8
### 11. Mortal Fibonacci Rabbits #### 0 1 1 2 2 3 4 5 7 9 12# method1
def fibonacciRabbits(n, m):F = [0, 1, 1]for i in range(3, n + 1):if i <= m:total = F[i - 1] + F[i - 2]elif i == m + 1:total = F[i - 1] + F[i - 2] - 1else:total = F[i - 1] + F[i - 2] - F[i - m - 1]F.append(total)return (F[n])# print fibonacciRabbits(6,3)# method2
def f(n, k):s = [0] * (k + 1) # list *4 [0, 0, 0, 0] s[0]代表当月出生的兔子,s[k]代表当月死亡的兔子s[0] = 1 # [1, 0, 0, 0]for x in range(1, n):s[1:k + 1] = s[0:k]print ss[0] = sum(s[2:])return sum(s[:-1])print f(10, 3)
转载于:https://www.cnblogs.com/think-and-do/p/7274013.html
11 Mortal Fibonacci Rabbits相关推荐
- C++11之常量表达式(const与constexpr的区别)
系列文章 C++11之正则表达式(regex_match.regex_search.regex_replace) C++11之线程库(Thread.Mutex.atomic.lock_guard.同步 ...
- 《Python核心编程》第11章 函数和函数式编程 练习
11-3 函数. 在这个练习中,我们将实现max()和min()内建函数. (a) 写分别带两个元素返回一个较大和较小元素,简单的max2()核min2()函数.他们应该可以用任意的python 对象 ...
- 【Python】functools.wraps定义函数装饰器
第一次见到functools.wraps是在 Flask Web开发 中,一直不明白怎么回事. 装饰器(decorator)是干嘛的?对于受到封装的原函数来说,装饰器能够在那个函数执行前或者执行后分别 ...
- Apple Swift编程语言入门教程
2019独角兽企业重金招聘Python工程师标准>>> 1 简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍<The Swift Programmi ...
- 《C与指针》第七章练习
本章问题 1.具有空函数体的函数可以作为存根使用,你如何对这类函数进行修改,使其更有用? answer:Have the stub(存根) print out a message when it is ...
- 初探swift语言的学习笔记一(基本数据类型)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/28258805 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...
- Apple Swift 编程语言入门教程
2019独角兽企业重金招聘Python工程师标准>>> 1 简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍<The Swift Programmi ...
- 是否使用wraps的區別
第一次见到functools.wraps是在 Flask Web开发 中,一直不明白怎么回事. 装饰器(decorator)是干嘛的?对于受到封装的原函数来说,装饰器能够在那个函数执行前或者执行后分别 ...
- Swift翻译之-Swift语法入门 Swift语法介绍
目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...
- java jsr_分叉并加入Java 7 – JSR 166并发实用程序
java jsr Java 7最有趣的改进之一是对并发的更好支持. 借助JSR 166并发实用程序,我们获得了一些非常有用的并发改进. 在我看来,fork-join库在软件工程中具有很高的实际应用潜力 ...
最新文章
- 详细说说Transformer (超详细图解,一图胜千言)
- 整个宇宙可能是个巨大的神经网络?看科学家们是这样解释的
- 用c语言找出第123个素数,在C语言中查找第N个素数
- VMware QueryPerformanceCounter/GetTickCount 悬案
- JAndFix: 基于Java实现的Android实时热修复方案
- LeetCode 298. 二叉树最长连续序列(自顶向下)
- Delta3d组件以及消息机制
- db2主键自增和oracle,DB2主键自增长设置(id自增)
- 面向项目(九)—— 交叉工具链
- sleep期间读取所有_java并发学习第四弹:走进JDK源码去了解sleep和join
- redis 一主二从三哨兵
- 软件立项申请报告模板
- 架构师接龙 飞信孙朝晖VS.139说客李祎
- 如何使用SQL判断身份证号码第18位是否符合规则
- Word 软回车和硬回车
- 配置电脑计算机从哪几个,电脑硬件配置_电脑硬件配置有哪些
- 滴水逆向 switch
- win10下用VMware workstation pro安装Ubuntu 16.04图解
- SpringBoot集成redis的LBS功能
- 计算机毕业设计(14)python毕设作品之校园运动场地预约系统
热门文章
- 基于JAVA优乐帮育儿系统计算机毕业设计源码+系统+数据库+lw文档+部署
- Java实现腾讯企业邮箱收发邮件
- HDU1880——哈希表(BKDR算法)——魔咒词典
- mysql水仙花数,水仙花数_水仙花数c语言程序
- 【CVPR2021】OCR文本检测MOST解读
- Deeplearning4j 快速入门
- C2AE: Class Conditioned Auto-Encoder for Open-set Recognition(CVPR 2019)部分翻译
- ASP.NET4.0尚未在Web服务器上注册
- oracle同义词不再有效,ORA-00980: 同义词转换不再有效
- 互联网早报:微信内测深度清理功能内存,可一键清理缓存