|
很有意思的题目。
以下思路未必能提供最优解(根据“反馈信息”“平均来说”最快打中船),但足够一般化,无需任何反馈信息(但很无奈的是即使打中了船炮手自己也不知道),而且能提供无数种具体的策略。下列思路还可推广至高维空间以及非匀速运动的船。
注意到所有有序整数对(m,v)是可数的,所以根据可数性的定义我们可以找一个从自然数集N(可以包括0也可以不包括0,不影响该思路的正确性;个人偏好包括0)到所有有序整数对Z^2的双射f。假设给定m和v的具体值,函数p(m,v)是船的位置函数,即p(m,v)是以下从实数集R到实数集R的函数:p(m,v)(t)表示船在时刻t的位置,具体到此题假设,p(m,v)(t) = m+v*t。现构造如下数列a(k),或从自然数集N到实数集R的函数a:a(k) = p(f(k))(k),则无论(m,v)取何值,必有自然数n = f^(-1)(m,v),使得a(n) = p(m,v)(n)。注意到最后的等式由数列a的定义成立,而f^(-1)因为f的双射性而存在。另外,容易举例说明使得a(n) = p(m,v)(n)成立的n不一定是唯一的,所以有可能在第n分钟之前就打中船只。在实际情况中,打中船只后船只位置函数p(m,v)可能与原假设不同(如船速减慢或沉船等),所以更稳妥的说法是必有不大于n = f^(-1)(m,v)的自然数k,使得a(k) = p(m,v)(k)。(好像有点钻牛角尖了……)最后注意到a并不依赖于射击后的反馈信息。
上述双射f有无数种,而具体策略随f变化而变化。一个最常用的f是所谓的“整数点螺线”(个人随便叫的,不知道学名),从二维平面原点按逆时针或顺时针方向以步长1绕出,用图形表示会比解析式直观易懂的多。
注意到只要位置函数(位置随时间的变化关系)的参数有可数的可能值,且炮弹能够到达船只的所有可能位置,上述推理成立。当然题目如果如此所述一般化就暴露了本质……这个题目真的是挺有趣的。
|