裂变问题分析
问题:一个瓶子放一个细菌,细菌一分钟裂变一次,1变2,60分钟后瓶子就满了,问给这个瓶子里放两个细菌裂变后要多久瓶子会满?
首先我们用猜的,不是30就是59,不可能是其他的答案,如果让我从30和59中选一个答案,那我肯定选59,不可能30吧,会这么弱智吗,没错答案就是59。
现在我们用数学公式来证明。根据题目我们知道瓶子装满时细菌的数量为2^60,假设N分钟后瓶子满,那么我们得到2*2^N=2^60,1+N=60,从而得出N=59。
是的就这么简单,还有更简单的呢。1个细菌裂变成2个细菌用时1分钟,1个细菌裂变让瓶子满的时间是60分钟,那么2个细菌让瓶子满的时间=1个细菌裂变让瓶子满的时间-1个细菌裂变成2个细菌的时间=60-1=59。
从上面的那个等式我们可以得出:N个细菌让瓶子满的时间=1个细菌裂变让瓶子满的时间-1个细菌裂变成N个细菌的时间
有了这个等式我们就很容易知道往瓶子里面放N个细菌多就会满了,4个细菌的时间为58,8个细菌的时间是57,16个细菌的时间,同样的,5,6,7的时间都是58分钟,因为8个细菌刚好要57分钟,所以我们很容易知道往瓶子里任意放1~2^N个细菌让瓶子满的时间为60-logN。
从上面那个等式可以看出:用时和细菌是1变2,还是1变3,或是1变N,没有多大关系,有关系的是1个细菌变成N个细菌所需的时间。所以上面那个等式适用于裂变是1变N的情况。
问题扩展:题目基本不改,只是将细菌1变2改成1个细菌生出2个细菌,就变成了鸡生蛋的问题了,其实就是1变3吗
作者:陈太汉
博客:http://www.cnblogs.com/hlxs/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架