细胞分裂题--递归算法

  • 题目
  • 解析
  • 代码

题目

有一个细胞 每一个小时分裂一次,一次分裂一个子细胞,第三个小时后会死亡。那么n个小时之后有多少细胞。

解析

将细胞按不同时间分类的方法略显复杂,这里介绍另外一位大神的算法:链接

未开始计时之前,都是1个细胞, f(n) = 1, n <= 0

未开始有细胞死亡时,f(n) = 2 * n, n < 3

开始有细胞死亡时,f(n) = 2 * f(n - 1) - 死亡细胞数

f(3)时, f(0)的细胞死亡,死亡细胞数 = f(0)
f(4)时, f(1)的细胞死亡,直观上直接减去 f(1),得到公式f(n) = 2 * f(n-1) - f(n-3),
但这是错误的,因为f(1)两个细胞中的一个是f(0)的,在f(3)的时候已经死亡,所以死亡细胞数 = f(1)新生细胞
f(5)时, f(2)的细胞死亡,但f(2)的4个细胞中2个已经死亡,所以死亡细胞数 = f(2) 新生细胞
从上面的分析来看,死亡细胞数并不是前3小时的细胞总数f(n-3),因为n-3时刻细胞总数 = 新生细胞 + 老细胞,很显然老细胞在n时刻之前就已经死亡。
因此,n时刻的死亡细胞数 应该是n-3时刻新生的细胞数,而n-3时刻新生的细胞数正是n-4时刻的总细胞数,即f(n-4),
因此,开始有细胞死亡时的正确计算公式是:
f(n) = 2 * f(n-1) - f(n-4)

代码

    public static int cells(int n) {if (n <= 0) {return 1;}if (n < 3) {return 2 * n;}return 2 * cells(n - 1) - cells(n - 4);}

细胞分裂题--递归算法相关推荐

  1. #include NOIP2009 Junior 细胞分裂 ——using namespace wxl;

    题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...

  2. 【codevs2952】 细胞分裂2,快速幂模版

    细胞分裂 2 时间限制: 2 s 空间限制: 16000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 著名生物学家F博士发现了一种单细胞生物. 它长得像蚯蚓,分裂 ...

  3. 2017.4.19 细胞分裂 思考记录

    虽说是普及组最强的数论题,,但还是普及组... 搞了非常久...感觉似乎这就是极限了... 这题主要就是分解质因数..  然后看包含所有容器质因数的最少分裂次数 如果对细胞分裂的质因数出现次数增长.容 ...

  4. 洛谷P1069 细胞分裂 数学

    洛谷P1069 细胞分裂 数学 质因数分解 题意 求一个最小的 自然数 x 使 s[ i ]^x 任意一个s[ i ] 能够整除以 m1^m2 只要能够整除以就行 题解 这题就是分解质因数 但是 分解 ...

  5. 细胞分裂3[详细剧情过关动画与任务布置详尽翻译]by kuangtian

    细胞分裂3详细剧情:过关动画与任务布置详尽翻译 写在前面: 这个是我承诺大家的东西.玩完这个游戏,我不得不感叹游戏编剧和汤姆克兰西脑子太大了,整个游戏整个就是一部惊险政治小说------这个东西是剧情 ...

  6. [生物] - 怎样理解细胞分裂次数是有限制的

    来源:http://hi.baidu.com/ccd2093/blog/item/3248302da2405736349bf71a.html       人之所以会死,是因为人体细胞的分裂次数是有限制 ...

  7. 细胞分裂java移植_胚胎移植前,先调理好你的子宫内膜!

    原标题:胚胎移植前,先调理好你的子宫内膜! 子宫是胎儿居住的"宫殿",子宫内膜是宫殿中孕育生命的"温床",是胚胎着床发育的地方,子宫内膜是否"肥沃&q ...

  8. 跑步呼吸方法(细胞分裂呼吸法)

    细胞分裂法 指的是只用鼻子呼吸,而不张嘴呼吸 在只用鼻子呼吸时,我们的运动对应的一定是低强度的有氧运动,消耗脂肪的比例较高. 而被迫张开嘴巴呼吸时,很可能已经进入高强度的无氧运动了,此时消耗糖类的比例 ...

  9. 【p093】细胞分裂

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家.现在,他正在为一个细胞实验做准备工作 ...

  10. 【NOIP2009PJ】细胞分裂

    题目描述 ​         Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. ​         Hanks 博士手里现 ...

最新文章

  1. 红外协议之NEC协议
  2. 我的思维模式的阿喀琉斯之踵
  3. Python面试题大全(四):数据库篇
  4. redis作用_Redis高可用详解:持久化技术及方案选择
  5. 实战案例丨分布式系统中如何用python实现Paxos
  6. 一个Form中2个按钮,PHP后台如何判断提交的是哪一个按钮
  7. 2015年蓝桥杯省赛A组c++第4题
  8. error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:解决方案
  9. 2019python全栈第22期百度云_2019年最新老男孩Python全栈第22期
  10. 基于STM32F103的智能循迹小车(舵机加双电机加灰度传感器的方案)
  11. mysql支持3条用来创建循环的语句_MySql学习笔记——存储过程
  12. windows C++ 解决Office打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”
  13. 「Remmina」- 远程桌面客户端(SSH、SFTP、VNC、Windows Remote Desktop、...) @20210402
  14. css单元格固定宽度大小,超过部分使用省略号表示
  15. putty小键盘输入_putty或xshell上用vi/vim小键盘无法使用的解决方法-阿里云开发者社区...
  16. 微信分享链接优化 title icon 描述
  17. 数据挖掘与数据分析的区别
  18. 32位单总线计算机系统中,计算机系统结构答案.doc
  19. 双栈路由Linux,IPV6 IPV4双栈互通与静态路由
  20. 在 Java 中如何加快大型集合的处理速度

热门文章

  1. 为串的模式匹配。模式匹
  2. gg修改器怎么修改服务器数值,gg修改器怎么修改数值 | 手游网游页游攻略大全...
  3. win10电脑外接音响没声音怎么回事?win10电脑外接音响没声音的修复方法
  4. JS将sql的dateTime格式数据例如:Wed Sep 30 00:00:00 CST 2020 字符串转换成2020-09-30 00:00:00时间格式
  5. 从行业到技术,一位嵌入式er带你清晰总览嵌入式行业职业规划
  6. 强制退出hdfs安全模式
  7. Java手机列表(供开发者参考)
  8. word删除括号里内容
  9. 融新聚力,筑梦畅行|云畅科技“融云计划”第一期集训营圆满结营
  10. 破解庞加莱猜想数学家曾四五年未发表论文