本文使用 Zhihu On VSCode 创作并发布
给一个不太一样的视角,从数学的角度考虑这个问题。
一个质点的运动可以描述为一条光滑的参数曲线
其中就是参数时间。这个质点的速度是,加速度是。首先我们着手建立一个不依赖的基的坐标系,即自然坐标系或者Frenet标架。
我们考虑一般的曲线运动,也就是与处处线性无关。
速度矢量是曲线的一个切矢量,对应方向上的单位矢量记为
我们考虑的是曲线本身的几何性质,所以要找到一个比时间更好描述曲线运动的参数——弧长。注意到这两个参数的变换Jacobian
恰好是速率。下面先暂定曲线的参数取为,最后再换回时间。
以为参数能立刻得到一个有用的结论:注意到是单位矢量,长度不变,于是有
也就是与处处正交。
单位切矢沿曲线的变化率可以表征曲线的弯曲程度,我们定义
称为曲线的曲率。在方向上的单位矢量记为
最后我们定义一个正交于和的单位矢量:
这样就构成了一个随曲线运动的右手单位正交标架,称为Frenet标架。对应的三个坐标轴分别称为切线,主法线和次法线。
现在我们回到以时间为参数的情况,给出Frenet标架下的运动学方程。
从速度公式
出发,求导得
这里沿切线的加速度分量是,沿主法线的加速度分量是。
回到题目中最特殊的情况——匀速圆周运动。首先我们来求圆的曲率。圆关于弧长的参数方程为
单位切矢
曲率
即半径为的圆的曲率是。
对于匀速圆周运动,线速度恒定,于是加速度就是
其中单位矢量是时时刻刻指向圆心的(与位置矢量方向相反)。
其实上面的推导绕了很大一圈,但是这个方法的好处是能够推广到各种各样的曲线运动。
估算一个上界。思路是每一轮都寻求一条最短线段,将当前包含天使的多边形,按面积等分成两个新的子多边形。再假设天使的运气足够好,每次都瞬移到等分效率较低的子多边形。
直观看出,取平行于正三角形一条边的线段来等分其面积,等分效率最高。令此线段长度 ,三角形边长 ,则:
这样,初始正三角形被分成一个新的小正三角形和一个等腰梯形,易见等腰梯形的等分效率远高于新的小正三角形,于是根据假设,天使将瞬移到新的小正三角形当中。如此循环,至于无穷,天使将被锁定在初始正三角形的一个顶点。计算魔鬼走过的耗时路程:
记魔鬼速度 ,则捉住天使的时间:
这个题目如此离散,不借助于数值离散优化不易得到全局最优解,建议大家来改进这个上界吧。
按照 @yyx 说的圆弧线等分正三角形以及后续的扇形,上界可以改进为:
估算一个上界。思路是每一轮都寻求一条最短线段,将当前包含天使的多边形,按面积等分成两个新的子多边形。再假设天使的运气足够好,每次都瞬移到等分效率较低的子多边形。
直观看出,取平行于正三角形一条边的线段来等分其面积,等分效率最高。令此线段长度 ,三角形边长 ,则:
这样,初始正三角形被分成一个新的小正三角形和一个等腰梯形,易见等腰梯形的等分效率远高于新的小正三角形,于是根据假设,天使将瞬移到新的小正三角形当中。如此循环,至于无穷,天使将被锁定在初始正三角形的一个顶点。计算魔鬼走过的耗时路程:
记魔鬼速度 ,则捉住天使的时间:
这个题目如此离散,不借助于数值离散优化不易得到全局最优解,建议大家来改进这个上界吧。
按照 @yyx 说的圆弧线等分正三角形以及后续的扇形,上界可以改进为: