問題:一個瓶子放一個細菌,細菌一分鍾裂變一次,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/