冰桶数学:全球人都参加冰桶挑战需要多久_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 冰桶数学:全球人都参加冰桶挑战需要多久

冰桶数学:全球人都参加冰桶挑战需要多久

 2014/8/21 15:35:27    程序员俱乐部  我要评论(0)
  • 摘要:虽然有人已经厌倦了ALS冰桶挑战,但是你不得不承认这是一个极为成功的策划。根据维基百科,这项挑战是这样的:挑战者需要将一桶冰水倒在自己头上。如果被提名者不愿意接受挑战,则需向美国肌萎缩性脊髓侧索硬化症协会(ALSAssociation)捐款。被提名者需要在24小时之内完成挑战或捐款。挑战者要提名三个人继续参加冰桶挑战。这项活动在不断传播,使得越来越多的人参加挑战,也有越来越多的人被提名。那么全世界所有人都参加冰桶挑战究竟需要多长时间呢?让我们来估计下。冰桶挑战模型1在第一个模型中
  • 标签:

  虽然有人已经厌倦了 ALS 冰桶挑战,但是你不得不承认这是一个极为成功的策划。根据维基百科,这项挑战是这样的:

  挑战者需要将一桶冰水倒在自己头上。

  如果被提名者不愿意接受挑战,则需向美国肌萎缩性脊髓侧索硬化症协会(ALS Association)捐款。

  被提名者需要在 24 小时之内完成挑战或捐款。

  挑战者要提名三个人继续参加冰桶挑战。

  这项活动在不断传播,使得越来越多的人参加挑战,也有越来越多的人被提名。那么全世界所有人都参加冰桶挑战究竟需要多长时间呢?让我们来估计下。

  冰桶挑战模型1

  在第一个模型中,我们遵循如下假设:

  每个人都会参加冰桶挑战。

  挑战者会提名三人继续参加挑战。

  每个人会在被提名后两天时间内完成挑战。

  每个人只会被提名一次。

  挑战会一直持续,直到全世界 70 亿人全部都参加冰桶挑战。那么,究竟需要多久呢?运用数学方法解决此问题并没有什么困难,事实上十分简单。需要做的事情就是设定一个循环周期,假设起初有n1个人参加挑战,那么一个循环周期之后已挑战人数为n2=n1+3×n1,也就是n1的 4 倍。接下来就是不断计算,直到参加人数到达 70 亿。

  经过计算,如果初始人数为1,周期为 2 天,则需要 35 天左右便可使全世界所有人都参加冰桶挑战。挑战人数会随时间呈线性增长,这是因为每一周期人数都是前一周期人数的 4 倍,这是一个指数函数。

  冰桶挑战模型2——更加接近实际情况

  显然,在模型 1 中存在着一些问题,让我们做一些调整:

  当提名一个人时,有可能此人已经参加过冰桶挑战。

  假设被提名人没有参加挑战的概率等于未参加人数与总人数的比值。

  所以,我们得到了被提名人没有参加挑战的概率公式为:

  P (new)=1-nIBC/npopulation

  其中,nIBC为已参加挑战人数,npopulation为总人数。如此一来,第一个挑战者提名人未参加的概率为 100%,而当大多数人已经参加过挑战后,提名未参加人的概率会变得非常低。

  好吧,让我们以此模拟一下。首先做一个总人数的列表,然后使用随机函数对每一位挑战者选出三位提名者,然后检验是否已经全部参加。但是这个方法要处理拥有 70 亿项的列表,有些过于繁琐。

  我们可以简化一下:举例来说明,假设地球上共有 100 人,而其中 80 人已经参加挑战,再次提名时未参加挑战的概率只有 20%,如此一来就不需要使用随机函数选择提名者而后再筛选出其中的已挑战者。这样的简化虽然不够准确,但是也不会太差。当处理庞大数字时,我们可以认为在这种情况下有 20% 的提名者会继续参加挑战。

  接下来,我们比较一下模型 1 和模型2。在第 29 天时,参加挑战的人数为 2.68 亿,两个模型几乎相同,模型 2 的调整效果似乎微乎其微。只有到最后几轮中,两个模型才有所区别,模型 2 会因提名概率很低而减缓挑战速度。但是这时已经太迟了,整个世界还是会“徜徉”在一片冰水之中。

  • 相关文章
发表评论
用户名: 匿名