一道数学题
日前,@wbzd在水源社区上问了我一道钓鱼题。我发现解答此题并不需要超出高中的数学知识,于是将我的解答记载于此。
问题
求一个满足下列条件的实数x。
解答
因为正弦值不超过1,所以不等式左边目标三项必须都非常接近1,和才能接近3。
如果把x看作时间,那么优化目标可看作三个距原点1单位且匀速旋转的点的纵坐标之和,速度分别为1、、弧度。时,它们都在原点正右方。目标是求出让它们聚集在原点正上方附近的时刻。
先考虑只有两个点的情况。在时,速度为1的点第一次到达原点正上方,此时速度为的点旋转了圈。
以这里为起点。速度为1的点再走过完整的1圈时,速度为的点相对于起点的位置再前进了圈。去掉完整的1圈,相当于它净前进了0.41圈。此后,速度为1的点再走过完整的1圈时,速度为的点相对于起点的位置共前进了圈。去掉完整的2圈,相当于它净前进了0.83圈,也就是净倒退了0.17圈。如果按2时间单位一步,反而比1时间单位一步迈得更小,更精细。这是因为按固定步长绕完一整圈后,有余或不足的部分一定比步长小。用0.17圈的步伐走完一整圈,需要步,那么6步也就是12时间单位后,就会很接近起点。,距离起点只有0.03圈了。再以12时间单位为一步走一圈,离起点的距离就能进一步缩小。如法炮制下去,就能走到离起点无限近的地方。
因为与之间没有有理数倍的关系,所以不可能出现正好走完一圈,没有余数的情况。而且,因为有余和不足的部分之和为一步长,所以两者之间必有其一小于一半步长。所以上述方法每走一圈就能成倍地靠近起点,很快就能使步长达到要求的精度。然后就能从起点小步到达原点正上方。
通过计算机程序可以求得,时,有
三个点的情况可以化为两个点的情况:只要前两点足够精确地聚集在原点正上方,就能在误差爆炸之前把第三点定位到目标位置。经过尝试,用上述方法,前两点误差小于10−121时,可以让第三点可以准确定位,且前两点误差仍小于10−22。原题的一个解为x = 10465198097094274380256243675180393165653417329251960835355182789431853395192049645152187705348494124079172906340943964752852594322046407138160965872636964871104574883527384498398956639540730212127262313150169537273261938627717456897268807500961120024549685358387309812849730289828221574700998561691620444816352696862848011251799518379554701333935963981437770810643677393751859224143972406588116679186988676421170746597406548442577892494404023944672979670912425196796425209358645795661328479728647698802389993795235728966859281338137043284272657298409567974945043911299541894957689588559816159429965824687636208747290136902136130305326652444101533415932434690230292616327680.25τ。
$MaxExtraPrecision = ∞;
(* 给出a的整数倍,使其模m小于t *)
f[a_?Positive, m_?Positive, t_?Positive] :=
If[Mod[#, m] < m/2, 1, Floor[m / (m - Mod[#, m])]] # & [
NestWhile[Round[m / Abs[Mod[#, m, -m/2]]] # &, a,
Abs[Mod[#, m, -m/2]] > t &]];
τ = 2π;
m2 = τ/Sqrt[2];
k2 = f[τ, m2, 10^-100];
k2 = Round[(5/4 m2 - Mod[τ/4, m2]) / Mod[k2, m2]] k2 + τ/4;
m3 = τ/Sqrt[3];
k3 = f[4 k2, m3, 10^-10];
k3 = Round[(5/4 m3 - Mod[k2, m3]) / Mod[k3, m3]] k3 + k2;
(* k3即为所求 *)
MixedFractionParts[k3 / τ]
上述做法因扩展到三点时需要高精度的中间结果,导致最终答案很大。这不是最小的解。wbzd给出了更小的解x = 28335093687627247,但我完全不理解这种用闵可夫斯基格点定理求距离原点任意近的四维向量整系数线性组合的方法,就没有进一步追究了。