首页 >> 数学 >> 漫画 >> 文章

[what if]第113期:走遍每个州Comments>>

发表于 2014-10-14 14:46 | Tags 标签:, ,

提问:

走遍美国全部50个州最短需要多长时间?

—— 源于Stephen Von Worley在Data Pointed上的一个讨论

回答:

本周的文章和以往的有些不同,我没有回答某个读者的提问,而是将目光转向了别人回答的一个问题,以及在此过程中我脑海里冒出来的新问题。吐槽一句,这其中牵涉到的计算实在是难,我差点就没算出来。

wpid-14116678550-2014-10-14-14-46.gif

(xkcd.com/356,点击可放大图案)

2012年夏天Twelve Mile Circle这个博客发布了一篇文章,希望能在谷歌地图上找出一条耗时24小时的路线,要求这条路线能经过尽可能多的州。最后他们得出的结论是最多能拜访19或20个州。

如果你能在24小时内经过19或20个州,那么拜访所有的50个州需要多久呢?Stephen Von Worley读完这篇文章后进行了一些计算,然后他捣鼓出了一条6813英里长的路线,这条路线经过了美国本土的48个州,之后他便在Data Pointed上发帖讨论搭乘不同的交通工具各需要多长时间才能完成这条路线。

他的结论是:

乘车(算上去阿拉斯加和夏威夷的乘飞机的时间):160小时

乘私人飞机(在每个州都降落一次):39小时

乘F-22战斗机以及直升飞机(在每个州降落一次):18小时

就这些,他没有进行更进一步的讨论。

最近有人把Stephen的这篇文章发给了我,我很喜欢,但我同时也很想知道:有没有更快的方法?

首先,有一些飞机飞得比F-22快。SR-71黑鸟侦察机在某种程度上[1][2]是飞得最快的飞机,它创下了从纽约飞到伦敦的飞行时间记录。它的速度甚至快到如果你沿着赤道向西飞,即使算上加油的时间,你也能看到太阳从西边升起,东边落下。[3]如果你能够取消必须在每一个州降落这一限制——这样你只需飞过州界就算到过某个州了——那么利用空中加油SR-71可以在大约7小时内飞完Stephen的那条路线,外加把朱诺(阿拉斯加首府)和檀香山(夏威夷首府)也一起拜访完。[4]

如果我们可以不用在每个州都要降落一次——如果我们只需要进入某个州的空域即可——那么更多的可能性将会浮现出来。至此我已经深陷于这个问题中不能自拔了。

地球轨道上的卫星的速度比SR-71快上一个数量级。一个在近地轨道飞行的物体能在几分钟内跨越整个美国。更进一步来说,只要时间足够长,极地轨道卫星终将经过每一个州,因为卫星在地球公转的同时地球也在自转,不过拜访完所有的50个州可能需要许多天。

wpid-polar-2014-10-14-14-46.png

(卫星就是这样扫描地球生成地图的)

于是我开始想到底需要多少条轨道,以及如果通过小心翼翼地调整卫星的轨道使之通过所有的50个州的上空,并且耗时比乘飞机所需的7个多小时更短。

如果你允许卫星无限次变轨,那就完全不需要考虑什么轨道,你只需让卫星在某条歪歪扭扭的轨道上保持在美国上空就行了。到这份上,问题就变成了到底可以用多少燃料了。

但我又想到了这个问题的另一个方面:如果你可以让卫星每绕地球一圈在靠近美国的时候降低速度,飞到地球的另一面时启动助推器提高速度,进入另一个轨道的话,一共需要绕地球多少圈才能飞过每一个州?

wpid-orbits-2014-10-14-14-46.png

(想象未来就只有一颗GPS卫星,它必须努力保持在任何一个驾车者的GPS设备搜索范围中)

我之前在“Flyover States”一文中(同时也是What if 一书中的一章节)用到了我自己写的一段代码用来分析飞机的轨迹,以便我回答那一期的问题。现在我打算把这段代码再拿出来用来分析卫星的轨迹。

花了一段时间后,我用尽我的数学知识也只想出用6条轨道飞遍美国50个州的方法:

wpid-14116681192-2014-10-14-14-46.gif

(出于某些巧合,这个方法中有3条轨道相交于一个不足100平方米的区域,这个区域在弗吉尼亚/西弗吉尼亚州界附近)
我觉得6条轨道应该是极限了,反正我怎么也想不出怎么用5条轨道就经过所有州上空。不过我把电脑开了一个晚上来计算可能的线路,然后昨天早上……

wpid-14116682134-2014-10-14-14-46.gif

(它穿过了夏威夷的莫洛凯岛。译者注:莫洛凯岛是麻风病人隔离地)

……电脑居然算出了一种只需5条轨道的方法。

这5条轨道经过了所有50个州的上空,包括华盛顿特区这个弹丸之地。轨道有些弯曲,因为地球在自转。不过就算我们忽略轨道运动,只看这样一个简化版的问题:需要多少条直线(大圆)才能穿过美国每一个州?答案也是如上图所示。

我并不确定5条是不是最小值,也许可以只需4条轨道,但我认为不可能比5条更少了。也许可以只用4条轨道就经过美国本土的48个州,但我目前还没找出来。

如果你想要自己尝试一下,你可以使用谷歌地球的轨迹绘制工具。它用起来不怎么方便,但还是挺有用的。如果谁能找出使用更少轨道的方法(或者证明不可能用更少的轨道),欢迎告诉我!

wpid-truck-2014-10-14-14-46.png

(你就不该在Stephen的货车经过小镇期间过马路!)

现在回到Stephen的那个问题上,5条轨道(如果起点和终点都是美国的话是4条)的方法将耗时6个小时多一点,这其中还包括了3次在印度洋上空机动所花的时间。换言之,乘上宇宙飞船你就能打败最快的飞机。

当然了,那些直角转弯需要耗费许多燃料,而正如我之前也提到的,如果你打算创下这个记录,你需要携带尽可能多的燃料,然后驾驶一艘space figure-8就呆在美国上空。[5]

不过不管你用哪种方法,有一件事是确定的:我用来计算这些东西的所有时间加在一起足够我徒步走遍每一个州了。

wpid-walked-2014-10-14-14-46.png

(这个州电线上的小鸟更胖更可爱,我打算搬到这里来。)

但我就是觉得算算这些东西很好玩啊……

  • 注1:火箭动力飞机飞得更快,但它们只能高速飞行很短一段距离,而且一般也不是靠自身起飞的。绕轨火箭比火箭动力飞机还快,因为要进入太空需要飞得尽可能快
  • 注2:X-15火箭动力飞机的速度是SR-71的两倍左右,我们在上个星期的文章中提到过火箭动力飞机,X-15正是其中之一。它的燃料最先是酒精,后来换成了氨。
  • 注3:我刚看到这条极为震撼的第一手叙述资料,当事人是SR-71的一位测试飞行员。1966当他驾驶SR-71以3.18马赫全速飞行时,飞机突然解体。惊人的是他居然活了下来,而他并没有进行弹射,飞机就在他四周解体破裂,碎片四溅。换言之,他在一瞬间变成孤身一人以3.18马赫的速度飞行,而本应载着他的飞机却不见了。这真是让人难以相信。
  • 注4:或许需要更多的时间,因为没法精确地沿着那条路径飞行。SR-71全速飞行时的转弯半径高达约100英里。
  • 注5:或者乘超回路列车。
0
为您推荐

24 Responses to “[what if]第113期:走遍每个州”

  1. Leo说道:

    这一期怎么在what-if专题里看不到?

    • vincentlwx说道:

      what if的blog上有哦 这期质量一般啦 不过国内what if出版目测遥遥无期 可能这样的翻译是个问题

  2. 饱以老拳说道:

    如果只看谷歌地图,几秒钟就可完成

  3. 方程说道:

    有点像图形切割问题

  4. Brain Yuan说道:

    第一张图里的电阻网格问题的答案应该是等效电阻为3/4欧姆。
    思路如下:因为整个网络是无穷且均匀的,所以假设从任意节点注入1A电流,则往上下左右4个方向的分流各为1/4A。网络无穷大,故满足集总抽象条件。再假设从其一个相邻节点汲取1A电流,则同样是从上下左右各有1/4A的分流。于是等效为在一个节点加一个注入的1A电流源,在其相邻节点加一个汲取的1A电流源。根据叠加原理,在网络上相邻两个节点上加了2A的电流源,两个节点之间直接流过1/2A电流,在1欧姆电阻上产生1/2V压降,故相邻两个节点之间的等效电阻为1/4欧姆。图中两个红点之间相距3个节点,故等效电阻为3/4欧姆。
    好了,让我继续看看下文都在说些啥。。。

    • Markos说道:

      FOOOOOOM

    • illusiwind说道:

      噗……
      一开始就错了,高中的东西都不记得了么?“注入1A的电流”跟“流出1A的电流”叠加以后,怎么变成了注入2A的电流并流出2A的电流的?相邻两个格点的电阻应该是1/2。

      “图中两个红点之间相距3个节点,故等效电阻为3/4欧姆。”
      这个就真无力吐槽了……用脚指头想想好么,这能按串联算么?你以为xkcd会出这么2B的题目么?
      好好学学吧小伙子

      • Brain Yuan说道:

        叠加的没有问题,根据叠加定理,在一个节点注入1A电流,在另一个节点汲取1A电流,相当于在端口上加了2A的电流源,因为这时候每个电阻上也是是两个电流源作用的叠加。此时两个节点之间的1欧姆电阻上流过的是1/4A+1/4A=1/2A。如果我假设端口上是一个1A的电流源,则两个节点之间的1欧姆电阻上流过的只有1/4A的电流。所以结果都一样,是1/4欧姆。这个方法是从MIT的Anant Agarwal的书上学的。就算用数学方法,用级数推,答案也一样。至于后面那个能不能按串联算,我还要推一下看看。昨天按直觉考虑,后面往任意方向前进一个节点增加的等效电阻应该已经把网络所有电阻的影响考虑进去了。

        • Illusiwind说道:

          “叠加的没有问题,根据叠加定理,在一个节点注入1A电流,在另一个节点汲取1A电流,相当于在端口上加了2A的电流源”
          相当于在端口上加了2A的电流源,并且另外一个节点没有任何电流流出的电路么?……我这辈子没见过这么神奇的电路。
          第二个串联那个我更是无力吐槽……
          “这次我们直接将对角节点作为一个端口加上1A的电流源,结果还是一个节点向4个方向流出1/4A,另一个节点从4个方向流入1/4A。”
          你忘了除了最近的四个电阻之外,次近的12个电阻也会有电流啊亲!所以除了一个电流源产生的1/4A之外,还要加上另一个电流源产生的???A的电流啊。那个结果应该是2/π的啊。
          “但在这个问题中,3/4欧姆的最终结果应该是没有问题的。”
          ……
          算了,我直接告诉你答案好了。是4/π-1/2。
          本来我贴了链接了,但是松鼠会审核不给过,等它过了你自己看吧……或者自己搜下好了,反正英文的你也能看得很流畅……

          • Brain Yuan说道:

            讨论的本身就是不存在的无穷大电阻网络。如果只从一个节点注入电流,从整个网络看,没有电荷守恒,不满足集总抽象。当在注入节点局部作高斯面是可以满足集总抽象条件的。不过我现在确实又有点困惑,因为就算假设一个节点之外的其它电阻都变成无穷大,单电流源激励下,每个方向的电流还是1/4A。但我需要的是分析两个节点的情况。这时候我甚至没法在这两个节点之间只加一个电流源,因为破坏了对称性。一开始选择假设2个电流源就是因为只加1个会破坏对称性。所以后面那个串联的分析,我应该是有问题。如果只是相邻节点,用叠加定理分析时,一个电流源激励时,另一个应该作开路处理。所以是一次有进无出,一次有出无进。后面的处理方式我也本想再去MIT的图书附加资料网站上查证一下,但那个网页已经过期了。我高中没搞过竞赛,但我现在是电气工程师。说实话,我也挺倾向于相信1/2欧姆这个结果的。电流源在实际中用的并不多,一般都靠差分放大电路加负反馈来实现。现在感觉怪怪的,因为叠加时好像这两个源确实不用叠加。

          • Illusiwind说道:

            用叠加原理其实是没问题的。关键在场强叠加,电阻是不叠加的。
            E=σj,设无限远处电势为0,然后往一个节点输入电流I,然后假设每个地方场强为E(x,y),电流密度为j(x,y),电流流向无限远。这是一个稳定状态。
            但是要算等效电阻的话不是到这就完了,电流还得出来啊,不能在无穷远消失啊。于是考虑另一个节点,输入一个电流 -I,然后处处的电场就变成了 -E(x-x0,y-y0),电流密度为 -j(x-x0,y-y0)。这样是一个电流从无穷远跑回来的情况。
            因为那个方程是线性的,电导处处不变,所以两个状态可以叠加,那么两个节点之间的电流就能算出来了,电势差也能知道了,除掉总电流就是等效电阻了。只要欧姆定律仍然适用,那么用叠加原理就没问题。

            这个方法唯一的问题在于,从一个节点到无穷远处的等效电阻是发散的……所以就好像“线电荷的电势”问题似的,如果让无穷远处电势为零的话,那两个地方的电势都是无穷大,电势差变成了无穷大减无穷大。不过怎么说呢,物理学到后边都能用重整化之类的东西硬生生消掉无穷大了,这点小case也无所谓了吧。

        • Illusiwind说道:

          对了,最后发现可以一招见血让你无力反驳的方法:
          如果你把注入节点周围的四个电阻之外,其他的所有电阻全部变成导线,这种情况下那两个节点之间的等效电阻一定是1/4,因为那等价于4个电阻全并联,没有其他电阻了。
          但是……难道其他电阻都是吃干饭的啊?所以结果一定大于1/4的……

      • Brain Yuan说道:

        为了回答你的第二个质疑,后面能否直接按串联算,我也想到了一个巧妙的办法。这个方法可以很直观地检验,在一个最小的正方形网格中的的对角节点的等效电阻,是否等同于两个相邻节点等效电阻的2倍。这次我们直接将对角节点作为一个端口加上1A的电流源,结果还是一个节点向4个方向流出1/4A,另一个节点从4个方向流入1/4A。于是此时在1A电流源的激励下,端口之间有1/2V的压降,说明对角节点间的等效电阻才为1/2欧姆,为两个相邻节间等效电阻的2倍。这尚不能完全证明后面的都可以按串联计算,因为我到目前还没有对后面的找到简单的证明方法。但我推出来的结论是,后面能否按串联是受限制的,限制来自于从一个节点出发后的前进方向。但在这个问题中,3/4欧姆的最终结果应该是没有问题的。

      • Brain Yuan说道:

        还要说一下那个叠加定理高中应该没教过。不过我怎么记得此类问题还有个解法。。。你不妨再试试六边形网格的情况。。。

        • Illusiwind说道:

          高中竞赛时讲过,这是一个神奇的例题,当时我也想了好久。

    • 胡子曰说道:

      叠加效果并不相当于一个2A的电流源,而是相当于一个1A的环流,所以两个相邻结点间的等效电阻是1/2欧姆,而不是1/4 欧姆。
      叠加后,相邻两结点还是一个提出1A电流,一个注入1A的电流,也就是两个结点之间有1A的电流,并可视为由两条并连支路提供,其中一条为两点之间的那个1欧姆的直连电阻,另一条为其它电阻组成的网路。两条支路各通过1/2A的电流,故有相同的等效电阻,都是1欧姆,所以两者并连的等效电阻为1/2欧姆。

      • Brain Yuan说道:

        咦?我好像是说错了。。。

      • Brain Yuan说道:

        我又分析了一下,应该没有错。无论假设1A还是2A电流源,得出的应该都是1/4欧姆

      • Brain Yuan说道:

        你再好好看看。不能看成1A的环流。因为叠加定理要先分别看每个源独立作用时的响应。叠加时要对响应进行叠加。如果只是1A的环流,响应也不同,但求出来的等效电阻还是一样的。

      • Brain Yuan说道:

        不过你说的这个1A的环流,倒是让我想到了一个解决“illusiwind”兄第二个质疑的巧妙方法。详见我给他的最后一条回复。

  5. test说道:

    蛮好奇该地图是用甚么投影法的? 适合大圆航线吗?

  6. 将就看懂说道:

    真的?
    似乎少年宫有这个题目:用大头针把要去的城市扎上,然后吹肥皂泡。。。最佳路线就出来了,符合最小作用原理。

    • Illusiwind说道:

      第一,题目问的是经过几块指定区域,不是几个指定的点。
      第二,就算是几个指定的点,那种方法得到的也不一定是最小值,而有可能是局部的极小值。
      第三,不懂的词不要乱用,最小作用原理跟这个一点关系没有,它涉及的是物体的运动状态。

Leave a Reply