zoukankan      html  css  js  c++  java
  • 裂变问题分析

    问题:一个瓶子放一个细菌,细菌一分钟裂变一次,1260分钟后瓶子就满了,问给这个瓶子里放两个细菌裂变后要多久瓶子会满?

    首先我们用猜的,不是30就是59,不可能是其他的答案,如果让我从3059中选一个答案,那我肯定选59,不可能30吧,会这么弱智吗,没错答案就是59

    现在我们用数学公式来证明。根据题目我们知道瓶子装满时细菌的数量为2^60,假设N分钟后瓶子满,那么我们得到2*2^N=2^601+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

     

    从上面那个等式可以看出:用时和细菌是12,还是13,或是1N,没有多大关系,有关系的是1个细菌变成N个细菌所需的时间。所以上面那个等式适用于裂变是1N的情况。

    问题扩展:题目基本不改,只是将细菌12改成1个细菌生出2个细菌,就变成了鸡生蛋的问题了,其实就是13

     

    作者:陈太汉

     

    博客:http://www.cnblogs.com/hlxs/

     

  • 相关阅读:
    iOS 8以后 定位手动授权问题
    IOS int NSInteger NSNumber区分
    Java基础知识(JAVA集合框架之List与Set)
    Java基础知识(JAVA基本数据类型包装类)
    Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)
    Java基础知识(重载和覆盖)
    Java基础知识(抽象类和接口)
    host文件
    天猫页面显示错位
    专题8:javascript函数详解
  • 原文地址:https://www.cnblogs.com/hlxs/p/2426958.html
Copyright © 2011-2022 走看看