1196
需用時?02:23
讓全世界的人完成冰桶挑戰,需要多少天?

VeraS/譯)目前在中文互聯網界也十分火的冰桶挑戰,是由美國肌萎縮性脊髓側索硬化癥協會(簡稱ALS協會)主持的一項公益募捐活動。它的規則非常簡單,被點名的人可以選擇將一桶冰水從自己的頭頂潑下去,或者向任意一個關注ALS患者的協會捐贈善款。現在,已經有很多名人完成了冰桶挑戰,包括比爾蓋茨、馬克扎克伯格、美國前總統小布什等,果殼網CEO姬十三也在不久前完成了這個挑戰項目。

冰桶挑戰通常要求被點名者在24小時之內完成挑戰(或者進行捐贈),然后再點三個人接棒。這就像是一種病毒,越多的人完成挑戰,就會有更多的人被點名。因此,還要多久才能讓整個世界都完成冰桶挑戰呢?讓我們估算一下。

冰桶挑戰模型1號

在第一種模型中,我會作出下列假設:

  • 某人完成了第一次冰桶挑戰;
  • 他選擇了三個人接棒;
  • 這三個人又各自選擇了三個人接受同一挑戰;
  • 每一批被指定者都在被點名的兩天后完成這一挑戰(所有人完成的時間一致),沒有人是拖延癥患者;
  • 被點名的每個人都是第一次接受冰桶挑戰。

那么全世界的70億人口都完成這一挑戰,需要多久呢?也許為此建立一個數學模型并不是什么困難的事兒,但是我打算只用Python(譯注:計算機語言的一種)來完成這一計算。我所需要做的只是制作一個循環。如果將完成這一挑戰的第一個人設定為n1,然后開始循環,那么在一輪循環結束后,完成冰桶挑戰的總人數將會是:

沒錯,我可以將這個數字寫成4n1,但是我更喜歡現在的寫法。下圖就是我依據這個公式計算出的,70億人完成挑戰需要多長時間:

請注意,縱坐標是以對數尺度表示的。從這張圖表中可以看出,不到35天全世界的人就可以完成冰桶挑戰。事實上,在35天之內,完成這一挑戰的總人數將超過全世界的總人口數量——我猜這里面八成有火星人。

冰桶挑戰模型2號:

很明顯,前一種模式中存在一些問題,我們來做一點修正。

如果某人指定一個新人接受挑戰,那么其實這個人是否完成過冰桶挑戰是有一定概率的。假設選擇到一個新挑戰者(從未參與過該挑戰的人)的概率取決于冰桶挑戰完成者的數量與總人數的比值,那么,對每一批挑戰者來說,選到新人的概率會是:

所以在挑戰剛開始的時候,找到一個新人的概率是100%,因為還沒有人進行過挑戰。不過在大多數人都已經完成該挑戰后,找到新人的概率就會變得很低了。

我們來建立一個模型。理想狀況下,我可以列出一張人名表,在每個冰桶挑戰中,我會使用一個隨機函數來決定這些人中哪些來接受新的挑戰,然后再看一下他是否已經接受過該挑戰。但是我不打算這樣做,為什么呢?因為我可不想去處理一張有著70億個項的列表。

所以我打算偷點懶。假設地球上就100個人,其中的80個已經完成了冰桶挑戰,那么他們選擇新人時,選中已經完成挑戰的人的概率為80%,也就是說只有20%的人會去進行挑戰。這樣一來我就無需再使用隨機函數來進行選擇了,就假設只有20%的人會被真正選中。這個假設算不上太糟糕(雖然它不太準確)。下圖中將兩個冰桶挑戰模型一同列出了。

總體來說,新模型與舊的差不多。這是為什么呢?讓我們回顧一下冰桶挑戰的第29日:這一天約有2.68億人完成了該挑戰,這樣就剩下將近70億人還沒進行該挑戰。這樣,模型2號中概率的微調就顯得無關緊要了。只有在最后一輪的時候,你可以看到兩種模型之間的差距。不過無論如何,全世界的人最后都會被冰水覆蓋的。(編輯:球藻怪)

文章題圖:usatoday.com

The End

發布于2014-08-21, 本文版權屬于果殼網(guokr.com),禁止轉載。如有需要,請聯系果殼

我的評論

Rhett Allain

東南路易斯安那大學物理學助理教授,在《連線》雜志設有博客

pic
    彩票开奖查询