让全世界的人完成冰桶挑战 需要多少天

 
让全世界的人完成冰桶挑战 需要多少天
2015-04-03 11:12:06 /故事大全

目前在中文互联网界也十分火的冰桶挑战,是由美国肌萎缩性脊髓侧索硬化症协会(简称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号中概率的微调就显得无关紧要了。只有在最后一轮的时候,你可以看到两种模型之间的差距。不过无论如何,全世界的人最后都会被冰水覆盖的。

    所属专题:
    如果您觉得本文或图片不错,请把它分享给您的朋友吧!

     
    故事大全
     
    版权所有- © 2012-2015 · 故事大全 SITEMAP站点地图-Foton Auman手机看故事 站点地图-Foton Auman