【趣味数学】冰桶数学:全球人都参加冰桶挑战需要多久
虽然有人已经厌倦了ALS冰桶挑战,但是你不得不承认这是一个极为成功的策划。根据维基百科,这项挑战是这样的:
—挑战者需要将一桶冰水倒在自己头上。 —如果被提名者不愿意接受挑战,则需向美国肌萎缩性脊髓侧索硬化症协会(ALSAssociation)捐款。 —被提名者需要在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会因提名概率很低而减缓挑战速度。但是这时已经太迟了,整个世界还是会“徜徉”在一片冰水之中。
(责任编辑:admin) |
织梦二维码生成器
------分隔线----------------------------