発想力クイズ

uomin pumpkinさんの日記より。
http://uomin.com/?m=pc&a=page_fh_diary&target_c_diary_id=18259&comment_count=6

方位磁石を持ちながら、南に1km歩き、次に東に1km歩き、
最後に北に1km歩くと、元に戻れる地点はどこ?

uomin加入者でないとリンク先は見れません。



その問題に対する答えに対する補足を書いていこうと思います。
回答を見たくない、自分で解きたい、人は続きを読まないでください。
(いろいろ加筆して、11/30 7:30に一応完成させました。)










































模範解答はこちら。
http://uomin.com/?m=pc&a=page_fh_diary&target_c_diary_id=18399
uomin加入者でないと見れません。


大まかな回答

北極点から南に1km(どの方向でも南になるはずです。)
東に1km(緯線に沿って歩きます)
北に1km行くと、元の場所である北極点に戻ります。
まず1つ目の答えは「北極点」。


南極点から、「南極点から1km+αkm離れた地点」に立ちます。
南に1km歩きます。この時点で南極点から距離αkmの位置に立ちます。
次に東に歩きます。距離αの距離を隔てて南極点の周りを歩くことになります。
ここで、1km歩いたところで、東に歩き始める前の位置に戻ってきたら、
そこから北に1km、南に歩いてきた道を逆に歩きます。
すると、元の位置に戻ってこれます。
「南極点から1km+αkm離れた地点」も答えです。


αの値

まず、細かいところ*1は置いておきます。


気になるところは、「南極点から1km+αkm離れた地点」における、αの値です。
これを求めます。

まず、問題文にある「東に進む」が南極点を中心に回ることに対応します。
ここでは、一般的にn周するとします。
すると、この回る円の円周はl=\frac{1}{n}kmになります。
(lは円の円周。n周回って元の位置に戻る必要があるため。)

南極点の周りで回る円について

この円の半径を求めます。

円周=直径×円周率

とかいう小学生でも知っている公式を使います。
かっこよく文字を使います。(円の半径をrとします。)
2\pi r = \frac{1}{n}
r= \frac{1}{2n\pi}
よって、この円の半径は\frac{1}{2n\pi}kmです。
だから、求める円は南極から\frac{1}{2n\pi}kmの距離の点の位置の集合で、
\alpha=\frac{1}{2n\pi}
とするのは早計です。
(この先は、r= \frac{1}{2n\pi}ですが、\alphaの値は決まっていないものとします。)

球上での長さについて

下の図はでっかい円が地球、赤線と青線の端が今考えている円の一部になっています。
地球を南極と北極で結んだ線で切断したものと考えてください。

先ほど求めた円の半径は上の図の赤い部分の半分に相当するからです。
求めなければならない値は青い部分の半分です。
(図はかなりデフォルメしています。θはもっと小さいです。)
赤い部分と上の図の全体の円の半径(地球の半径: R \simeq 6378)は分かっている*2ので、青い部分の長さは出せます。
まず、図に示した\thetaの値を余弦定理で求めます。
\theta = \cos ^{-1} [ \frac{R^2+R^2-\( 2r \)^2}{2R \cdot R} ]
\theta = \cos ^{-1} [ 1 - \frac{1}{2 n^2 \pi ^2 R^2} ]
すると、青い部分の弧の長さは次の式で求められます。
2 \alpha = R \theta (但し、\thetaは弧度法による記述(単位 rad))
このまま\alphaを計算すれば、求まります。
\alpha = \frac{R}{2} \cos ^{-1} [ 1 - \frac{1}{2 n^2 \pi ^2 R^2} ]
です。
Rは地球半径: 約6378km、nは南極点の周りを回る回数です。
(途中で計算ミスをしていました。11/29 21:30頃訂正しました。)

実際の値

式で書いても、いまいち分かりません。
どのくらい地球の丸みによる影響(αとrの差)があるのか見てみます。
n=1のとき...*3
\alpha=0.1591549444051944
r=0.1591549430918953
小数点第9位から違いが現れています。
はっきり言って、誤差範囲です。
地球の球からのズレや地磁気の誤差などの方がよっぽど効きそうです。


なお、計算はhttp://sbrain.zive.net/calc/を用いました。
このサイトでは、逆三角関数*4の値を度数法ではなく弧度法で返してくれるので、上に書いた式をそのまま入れるだけでOKです。

α: (1/2)*6378*acos(1-(1/(2*pi^2*6378^2)))
r: 1/(2*pi)

を入れれば計算されます。
Rの値が大きくなればなるほど、この2つの値は近くなります*5


ちなみに、ユークリッド幾何*6とリーマン幾何*7を調べると、より深くこの問題を理解できるかもしれません。




この問題について書かれている記事

違う視点でこの問題について議論しています。
2つ目の記事に関しては、興味深いです。
補足、というか解釈。
確かに、ある点での東の方向は1番になりますが、少し移動した地点でまた東を決めて少し進み、また少し進んだ地点で東を決めて・・・と繰り返すと、2番の方向に進んでいることになります。
(この場合は、方位磁針で方向を確認しながら進むということに対応します。)
ただし、単に東に進むというだけでは、1番と取られても仕方がないです。
問題文をどう書くか、というのが重要なファクターになっているということを指摘しています。
(pumpkinさんが書いていた文章では「方位磁石を持ちながら」と言う一節が入っているので、1番の方向に進むことはないです。)

*1:細かいところ: 地球は完全な球体ではないこと、実際の北と方位磁針が指す北にはズレがあること、の2点

*2:Rが分かっている: この値(R=6378)は、赤道断面での地球の半径です。この問題に用いるべきは、地球の中心と南極の距離です。地球は赤道面のほうが大きくなっている(南北方向につぶれている)ので、Rはもう少し小さな値を用いるのが良いです。

*3:n=1: n=1のときが、円の円周が1kmで最も大きいため、地球の丸みの影響が最も大きく現れます。

*4:三角関数: 三角関数逆関数逆関数とは、y=f(x),x=f^{-1}(y)としたとき、f逆関数f^{-1}である、といいます。逆三角関数のうちcosに関するものを、本文では\cos^{-1}と書いていますが、プログラムではacosとすることが多いです。acosarccosの略で、アークコサインと読みます。asinやatanもあります。

*5:2つの値が近く: 丸み(曲率)が0に近づいていくため。R \to \inftyのとき、球の表面と平面は同じになります。

*6:ユークリッド幾何: 曲率0の空間での幾何。学校でやるのはこれ。

*7:リーマン幾何: 曲率が正の空間での幾何。一般相対性理論を記述するのに使うので有名。ユークリッド幾何で考えるとおかしなことが起こります。例えば、三角形の内角の和が180度以上になったりすることです。