11 Mortal Fibonacci Rabbits
Problem
![](http://rosalind.info/media/problems/fibd/mortal_rabbit_tree.thumb.png)
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] - 1
else:
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 s
s[0] = sum(s[2:])
return sum(s[:-1]) print f(10, 3)
11 Mortal Fibonacci Rabbits的更多相关文章
- 指数级计算复杂度 调用Fibonacci函数次数
指数级计算复杂度 计算调用次数 #include <stdio.h> long fibonacciCallTimes(long n); int main(void) { long resu ...
- 赶时髦过了一遍Swift 语言....
Swift 语言 2014年6月3日发布,替代OBJECT-C Swift is a new programming language for creating iOS and OS X apps. ...
- 基础调试命令 - wt (watch and trace)
本文介绍windbg动态调试过程中一个非常有用的命令,wt的用法. wt命令 wt命令之所以称为wt是因为它是watch and trace的简称,即用来观察和跟踪的命令.这个命令一般用在动态调试而不 ...
- [IOS]《A Swift Tour》翻译(一)
以下翻译内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3768936.html 碎碎念... Swift是苹果在WWDC刚发 ...
- Apple Swift编程语言入门教程
Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 ...
- swift 2.x学习笔记(二)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0. ...
- 来自苹果的编程语言——Swift简介转载】
关于 这篇文章简要介绍了苹果于WWDC 2014发布的编程语言——Swift. 原文作者: Lucida Blog 新浪微博 豆瓣 转载前请保留出处链接,谢谢. 前言 在这里我认为有必要提一下Brec ...
- 《C与指针》第七章练习
本章问题 1.具有空函数体的函数可以作为存根使用,你如何对这类函数进行修改,使其更有用? answer:Have the stub(存根) print out a message when it is ...
- 转 苹果的新编程语言 Swift 简介
苹果官方文档地址 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Pro ...
随机推荐
- python学习(二)—简明python教程
2016-04-14 20:55:16 八.模块 简介 前面介绍了如何在程序中定义一次函数而重用代码.在其他程序中重用很多函数,就需要使用模块.模块基本上就是一个包含了所有你定义的函数和变量的文件.模 ...
- time函数及其用法
Linux下三种时间 st_atime:文件中的数据最后被访问的时间 Time when file data was last accessed. Changed by the ...
- Mplayer1.0rc2移植到am335x开发板
因项目需要媒体播放器,所以准备使用QT+Mplayer来做,但遇到了屏幕闪烁的问题,无法满足需求. 1.参考<mplayer 移植到 arm 心得> ,http://blog.csdn.n ...
- Dubbo 基础教程
原文地址:Dubbo 基础教程 博客地址:http://www.extlight.com 一.前言 当服务越来越多时,容量的评估,小服务资源的浪费等问题逐渐显现,此时需要增加一个调度中心基于访问压力实 ...
- 常用的acl规则
一.常用的acl规则 haproxy的ACL用于实现基于请求报文的首部.响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性.其配置法则通常分为两步,首先去定义ACL ...
- GridView 绑定数据的常用指定格式。
形式 语法 结果 注释 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2 ...
- boost::threadpool 调用类成员变量并传入参数 的方法
1. 首先到官网下载 http://threadpool.sourceforge.net/ 2. 包含头文件 #include "../boost/threadpool.hpp& ...
- CentOS防火墙中端口的开启和关闭
1.开启端口(以80端口为例) 方法一: /sbin/iptables -I INPUT -p tcp --dport -j ACCEPT 写入修改 /etc/init.d/iptables save ...
- 第十九课 golang中的下划线
在 Golang 里, _ (下划线)是个特殊的标识符. 用在 import 在导包的时候,常见这个用法: 1 2 import _ "net/http/pprof" import ...
- Carrying per-request context using the HttpRequestMessage.Properties
In a Web API application, I use Castle Windsor to supply services configured with PerWebRequest life ...