在这个有趣的Riddler问题,我们正在处理一系列可能无限的…孩子?它是这样的:
你可能知道,生一个孩子,更不用说生很多孩子,是一项艰巨的任务。但爱丽丝和鲍勃意识到,随着年龄的增长,孩子们需要的父母时间越来越少。他们发现生孩子所需的工作量等于孩子年龄除以一。(是的,这意味着孩子出生后的工作是无限的。这可能是真的。)
无论如何,因为生一个孩子是一项艰巨的任务,爱丽丝和鲍勃不想再生一个小孩,直到他们所有其他孩子所需的总工作量达到1或更少。假设他们在T=0时有了第一个孩子。当T=1时,他们的独生子是1岁,所以所涉及的功是1,所以他们有了第二个孩子。大约又过了1.61年,他们的孩子大约是1.61岁和2.61岁,所需的工作量又降到了1岁,所以他们有了第三个孩子。等等。
(可以忽略双胞胎、死亡、现实世界中无法准确决定何时生孩子等等。)
五个问题:爱丽丝和鲍勃有无限数量的孩子有意义吗?随着孩子越来越多,孩子之间的间隔时间会增加吗?当他们有了第N个孩子时,我们能说什么?我们能用公式预测吗?随着时间的推移,它们的幼仔数量是否显示出渐进行为?如果是,它的界限是什么?
以下是对我的推导的解释:
[显示解决方案]
让我们称$t_k$为Alice和Bob生下$k^\text{th}$孩子的时间。第一个孩子出生于时间零点,因此$t_1=0$。由于应付给孩子的工作是一除以他们的年龄,因此在$t$时应付给孩子$k$的工作由以下公式给出:
\[
\文本{workattime}t=\begin{cases}
\frac{1}{t-_k}&\text{if}t>t_k\\
0&\text{否则}
\结束{cases}
\]我们还知道,每一个孩子出生时,所有前一个孩子的总工作量等于1美元。因此,我们有以下方程式:
\开始{align}
t2\text{状态:}&&\压裂{1}{t2-t1}&=1\\
t3\text{满足:}&&\压裂{1}{t3-t2}+\压裂{1'{t3-t1}&=1\\
t4\text{满足:}&&\frac{1}{t4-t3}+\frac}1}{t_4-t2}+\frac{1{t4-t1}&=1\\
\光盘\qquad\\
tk\text{满足:}&&\sum{i=1}^{k-1}\frac{1}{tk-ti}&=1
\结束{align}和如此类推。我们也知道$t_1和t_2和t_3是按顺序出生的。这些方程的优点是可以按顺序求解。我们知道$t_1=0$。将其代入第一个方程式中,得到$t_2=1$。将这些值代入第二个方程式中,得出:
\[
\压裂{1}{t3-1}+\压裂{1{t3}=1
\]重新排列得到$t_3^2-3t_3+1=0$。这个方程有两个解,但我们取满足$t_3\gtt_2$的解,得到$t_3=\tfrac{3+\sqrt{5}}{2}\约2.618$。我们可以继续这样,通过替换前面的值来求解每个后续方程……但事情很快就会变得复杂起来。下一个等式为:
\[
t4^3-\左(\tfrac{11+\sqrt{5}}{2}\右)t4^2+\左(\frac{13+3\sqrt}{5}{2{右)t4-\左
\]我们再次发现,存在一个满足$t_4\gt t_3$的唯一解决方案。此解决方案约为$t_4\约4.5993$。似乎没有任何自动的方式来继续这个过程。每次我们试图计算下一个$t_k$时,我们都必须找到一个更复杂多项式的根!
我们将采用数值方法,但让我首先解决一个问题:我们如何确保这些越来越复杂的多项式总是有一个满足约束条件的根?例如,如果$t_4$的多项式没有大于$t_3$的根怎么办?如果它有很多这样的根源呢?谢天谢地,有一种简单的方法可以通过利用中间值定理具体来说,功能
\[
f_k(t)=\frac{1}{t-1}+\frac{1}{t-2}+\cdots+\frac{1}{t-1}
\]其中$t\gtt{k-1}是一个连续且严格递减的函数。此外,$\lim_{t\to{t_{k-1}}^+}f_k(t)=+infty$和$\lim _{t\to infty}f_k(t)=0$。因此,根据中间值定理,在(t{k-1},infty)$中一定存在一个点$t_k,使得$f_k(tk)=1$。$f_k$的严格幺性($f_k$严格递减)意味着这个$t_k$必须是唯一的。
根可能是唯一的,但我们如何才能有效地找到它?在这里,我们可以利用$f_k$;即凸性事实上,$f_k$是凸的(和光滑的),这意味着我们可以利用凸分析中利用导数信息的一些有效方法。有很多方法可以从这里得到答案……我最终做的是使用L-BFGS算法关于目标$(fk(t)-1)^2$。我在中的实现朱莉娅使用最佳jl这个软件包花了大约40秒来评估前1000名儿童的出生日期。
注:有很多方法可以将其表述为优化问题。一种方法是注意,求解$f_k(t)=1$相当于极限化$f_k(t)-1$的反导数。换句话说,我们可以解决:
\[
t_k=\底集{t\gtt_{k-1}}{\text{arg-min}}\左(t-\sum_{i=1}^{k-1{log(t-ti)\右)
=\underset{t\gt t_{k-1}}{\text{arg-max}}\,\,e^{-t}\prod_{i=1}^{k-1{(t-ti)
\]顺便说一句,$t_k$的最后一个表达式清楚地表明应该有一个唯一的$t_k$。当$t\gtt_{k-1}$时,乘积是一个严格递增的多项式,它被乘以$e^{-t}$,这最终会使它归零。因此,必须有一个唯一的最大化器。我尝试实现这两种方法,结果都比直接最小化$(f_k(t)-1)^2$慢。
如果您只对问题的答案感兴趣,请看以下内容:
[显示解决方案]
- 爱丽丝和鲍勃有无限多的孩子有意义吗?撇开生物局限性不谈,是的!我们证明了对于每个$t_k$,存在一个唯一的$t_{k+1}\gt t_k$,它满足问题的约束。所以依据归纳爱丽丝和鲍勃可以有他们喜欢的任意多的孩子。
- 随着孩子越来越多,孩子之间的间隔时间会增加吗?答案是肯定的,我会提供“图片证明”。在找到$k=1,2,\dots$的$t_k$后,我们知道每个孩子的出生日期。然后继续计算每个$k$(出生间隔时间)的$(t_{k+1}-tk)$。这是情节
左边的第一点说,我们在孩子1美元出生后等待1美元一年,在孩子2美元出生后等待约1.6美元一年,以此类推。按上述对数比例绘制,我们可以看到曲线几乎是一条完美的直线。下面是一个公式,我们可以用它来估算等待的年数:
$\显示样式
\text{孩子出生后等待的年数}k\text{出生}\,大约\,1+2.19\cdot\log{10}k
$
所以,是的,孩子之间的时间增加了(没有限制),但增长很慢。到爱丽丝和鲍勃生下第1000个孩子的时候,他们将在孩子之间等待大约7.5年。
- 当他们有了$N^\text{th}$孩子时,我们能说些什么?有我们可以写下的公式吗?我找不到一个解析表达式,但我找到了一个很好的近似值。首先,让我们画一个图,看看我们在做什么。以下是前19个孩子的出生年份
我们可以看到,增长率略高于线性增长率。由于孩子之间的时间非常符合$a+b\log x$形式的曲线,因此将出生日期本身与此形式的积分相匹配是有意义的。为了拟合最简单的曲线,我做了一些实验,发现$ax+x\log x$形式做得很好。我用线性回归然后把方程放在上面的图中。如果我们延长时间范围,我们会得到类似的结果:
这非常适合;该图实际上描绘了真实数据,拟合覆盖在顶部。它非常适合,你甚至看不到下面的数据!因此,对于较大的$N$,一个很好的近似值是:
$\显示样式
\text{孩子出生年份}N\text{出生年份}\,大约\,-0.315N+N\log N
$
- 最后一个问题是,随着时间的推移,鱼群的大小是否显示出渐近行为。我们已经绘制了出生时间与儿童数量的关系图,发现关系大致为:$y\approxis-0.315 N+N\log N$。所以在这里,我们需要看看反向关系,并问$N$作为$y$的函数做了什么。由于$y$的增长略快于线性增长,这意味着$N$的增长将略慢于线性增长。