雑学界の権威・平林純の考える科学

成人した男女800人に尋ねたら、3人に1人が「サンタクロースはいる」と信じていて、世界中にはサンタクロースが「何十万人もいる」と答えたというニュースが流れていました(調査レポート PDF)。…そう、サンタクロースは本当に存在しるということを、大人は確かに知っています。 今日書くことは、そんなクリスマスの話です。

クリスマスイブの夜、世界中のこどもたちにクリスマスプレゼントを届けるために、サンタクロースはトナカイのそりに乗り、世界中を駆け抜けます。世界中にはたくさんのこどもたちがいますから、サンタが「いきあたりばったり」に何の計画もなくソリを走らせたりしたら、プレゼントを届け終わる前に夜が明けてしまいます。だから、サンタクロースは、世界中のこどもたちがいる家を世界地図で探し「さぁ、今年はどういう順序で、世界中にいるこどもたちの家を回ろうか?」と考えます。

サンタクロースは、一体どういうコースで世界中にいるこどもたちの家を訪ねれば良いのでしょう? 実は、このクリスマスイブを前にサンタクロースを悩ませる問題は、「巡回サンタクロース問題(TSP: Traveling Santa-Claus Problem )」と呼ばれる計算機科学でも難問とされる「大問題」です。

「こどもたちが眠る枕元の位置の集合」と「各こどものいる位置の間の距離」が与えられたとき、すべてのこどもたちのもとをちょうど一度ずつ訪れて、そして、北極に戻るまでの総移動距離が最小のコースを求めよ。

巡回サンタクロース問題(TSP: Traveling Santa-Claus Problem )

 この問題がなぜ難問かというと、サンタは「考えうるたくさんのコースの中から、最短コースを見つけ出さなければならない」わけですが、考えうるたくさんのコースの数が、あまりにも膨大だからです。

サンタが考えないといけない「たくさんのコース」の総数は、サンタクロースが1人である場合は、こんな式で表されます。

( こどもたちの人数 - 1 ) ! / 2

この式の中にいる「! 」というのが曲者です。「! 」というのは、たとえば「5!」なら、「5×4×3×2×1=120」となります。つまり、(その数から1までを)延々と掛け合わせる、という意味です。この「!」があるせいで、上の式はあっというまに「膨大な数」になってしまうのです。たとえば、世界にいるこどもが「たった100人だけ」だったとしても、もう 156桁もの膨大な数になってしまうのです。あるいは、もしも1000人のこどもたちがいたら、あぁ「2565桁ものコース」の中から最短コースを選び出さなければならないのです。さらには、それが何千万人・何億人ものこどもたちがいたならば、もう想像もできないくらい、たいへん大きな数のコース中から、配達コースを考えなければならないのです…。

 

 スーパーコンピュータ「京」でも、1秒間に「1京回=16桁回」の演算しかできません。…ということは、クリスマスイブを前にサンタクロースを悩ませる問題「巡回サンタクロース問題(TSP)」がどれだけ難しい「大問題」であるか、わかるかと思います。サンタが1人しかいなかったとしたら、こどもたちにプレゼントを配るコースを考えるだけで、日が暮れるどころか何年・何万年もかかってしまいます。

 けれど、こう考えてみましょう。

「サンタクロースは”1人”ではなくて、何人かで分担してプレゼントを配っていたとしたら?」

 もしサンタが何人かいたならば、プレゼント配りは「1 / サンタの人数」だけ楽になります。 そして「コースを考える作業」は、実際に配る作業以上に「ずっと楽」になります。

1 / ( ( ( こどもたちの数 – 1 ) ! / 2 ) / ( サンタの人数 * ( こどもたちの数 / サンタの人数 – 1 ) ! / 2 ) )

にまで減るのです。世界にいるこどもが「100人」の場合、サンタが1人なら156桁ものコースを考えなければなりませんでしたが、もしサンタが10人いたら、たった7桁の「1814400コース」を考えるだけで良いのです。つまり、こういうことです。

 サンタが1人だけだったとしたら、プレゼントを配ることは不可能だ。
しかし、サンタが複数いたならば、プレゼントを配ることができる可能性がある。

 

けれど、これだけでは、不十分ですよね。「サンタが複数いたならば、プレゼントを配ることができる可能性がある」といっても、世界中にはたくさんのこどもたちがいます。しかも、世界の人口は1年あたり1億人づつ増えていますから、全世界にいる子供たちの数も、毎年どんどん増えているのです。こどもの数が増え続けたら、いくらサンタクロースが複数いるといっても、プレゼントの配達コースを考え・配るなんてできるわけもありません…。

それを解決する答えはこうなります。

 こどもが増えるにしたがって、サンタクロースも増える。
そうすれば、世界中のこどものもとに、プレゼントも届く。

 こどもが増えるのと同じようにサンタも増える、つまり、「こどもがこの世界に生まれ来ると、サンタも新たに増えていく」のであれば、何の問題もなくなります。プレゼントの配達コースを考えるだけで日が暮れてしまうこともないし、プレゼントを配り終える前に朝になってしまう…なんてこともなくなります。「サンタクロースは複数いて、こどもが1人現れるたびにサンタも増える」と考えれば、クリスマスイブの夜、世界中のこどもたちの枕元にプレゼントが置かれる、という事実を確かに説明することができるのです。

 

 

 おやおや?「こどもが1人地球上に現れるたびに、地球上のどこかで、サンタが新たに現れる」というのは何かの偶然でしょうか。…偶然にしては「できすぎ」ですよね?もちろん、それは「こどもたちがサンタになる」ということを意味しているに違いありません。そして、新たなこどもが生まれた瞬間、「(それまでの)こどもが大人になり、そしてサンタになる」のです。…「ひとりのこどもが世界のどこかに現れたとき、どこかのこどもがサンタに変わる」と、そう考えたなら、すべてのツジツマが合ってきます。そうです、こどもがいつか、こどもに呼ばれて、そしてサンタになるのです。

 「サンタに変わった(かつての)こども」は、普段は(サンタという名前ではない)他の名前で呼ばれていたりするかもしれません。けれど、クリスマスには、サンタクロースという名前で呼ばれる存在に、確かになるのです。クリスマスイブの夜に、人知れず、「(かつての)こどもたち」はサンタという存在に変身するのです。

 

 こうして…サンタが街にやってきます。ひとりのこどもが世界のどこかで生まれた瞬間に、どこかのこどもがサンタへと姿を変えていきます。かつてのこどもが、眠るこどもたちの寝顔を眺めつつ・夢を見ているこどもたちを起こさないように気をつけつつ…そっとプレゼントを置くサンタクロースという存在へと変わります。

 新たにこの世界に生まれて来たこどもの声を聞き、小さな頃いつもプレゼントが届けられていたという(かつての)こどもも、サンタなんか来たことがないという(かつての)こどもも、サンタへと姿を変えていきます。そして、自分の姿を変えさせたこどもを見た時、「本当にサンタがいた」ということに気づくのです。

 12月10日の夜の皆既月食(月蝕)をたくさんの人たちが眺めることができたのは、月が遙か遠く離れた場所にあるからです。 もしも、月がもっとずっと近い場所に浮かんでいたとしたら、日本中の人たちが月食を同時に眺めることはできません。 たとえば、高さ634mの東京スカイツリーは東京近くの広い場所から眺めることができます。 しかし、東京から数百km離れた大阪からともなると…東京スカイツリーは見えません。 月が地球から約38万kmほども遠い場所にいるから、日本列島のさまざまな場所にいる私たちが、同じ月を眺めることができるのです。

 今週からクリスマスくらいまでの間、冬の澄んだ夜空の向こうから、こぐま座流星群が地球へと降り注ぎます。 しかし、月食と違って、「同じ流れ星」をみんなで眺めることはできません。 なぜ、同じ月食をみんなで眺めることができるのに、同じ流れ星をみんなで見ることができないのでしょうか?

 なぜかと言うと、流れ星がいるのは月よりずっと低い場所だからです。 大気圏に突入した流れ星は地表100kmほどの高さで熱く燃えて、そして明るく輝きます。 100kmというと…東京駅から東海道線に乗って、横浜・小田原・熱海を抜けて、箱根を過ぎた辺りです。 そんな意外なほどに近くて・低い場所、地表100kmくらいの高さで輝いているのが流れ星です。 地表100kmくらいの高さでは、100〜200キロメートルくらい離れてしまうだけで、もう見ることができなくなってしまいます。 だから、私たちが見ることができるのは、私たちの周り100〜200キロメートルくらいのところに降り注いでいる流れ星だけで、数百km以上離れた人とは同じ流れ星を見ることはできないのです(参考記事)。

 これからクリスマスの頃までの夜、こぐま座の方向を眺めていれば、そこから四方に広がる流れ星を見ることができるかもしれません。 「こぐま座ってどこにあるの?」と思う人もいることでしょう。 けれど、大丈夫。 こぐま座を見つけるのは、とても簡単です。 だって、北極星もこぐま座の一部なんです。 だから、北の空に明るく輝く北極星のあたりを眺めれば、そこに浮かんでいるのがこぐま座です。

 クリスマスの頃までの北の夜空を、誰かと一緒に眺めてみるのはいかがでしょう。 とても近く、同じ場所から、同じ方向を眺めてみれば、もしかしたら、同じ流れ星を眺めることもできるかもしれません。

 先週末の土曜日、2011年12月10日の夜、たくさんの人たちが皆既月食を見上げていました。 あの夜、空に高く浮かぶ満月が急に三日月へと姿を変え始め、陰った部分は赤くなり…いつの間にか赤い満月が一時間近く空に浮かんでいました。その皆既月食中の月を眺め、幻想的なまでに「赤い」ことに驚いた方も多かったのではないでしょうか?

 太陽の光が地球に遮られて月に届かなくなると「月食」になります。 …しかし、太陽からの光が(地球から見える側の)月面に完全に届かないわけではありません。 実は、地球の周りにある大気中を通過した太陽光の一部が、大気中を通過し・方向を変えつつ月面を照らすのです。 その際、青色や緑色の光は地球の影の中に隠れた月面まで届かずに、(右図のように)赤色系統の光だけが月面まで辿り着きます。 地球の周りの大気中を、主に赤い色の光だけが通過し・少しづつ色々な方向に向きを変え・進み、その一部が月面を照らします。 だから、皆既月食中の月は赤く見える、というわけです。

 ちなみに、「地球の周りの大気中を、主に赤い色の光だけが通過し・少しづつ色々な方向に向きを変え・進む」のは、「夕焼けが赤くなる理由」と同じです。 地球上にいる私たちが眺める(地球の)地平線近くから差し込んでくる太陽の光が赤く見えるように、月面から眺めても、地球の地平線近くから差し込んでくる太陽の光はやはり赤く見えるのです。( 参考:宇宙ステーションから見た”夕焼け”

 だから、あの皆既月食の夜、私たちが見上げた「赤い月」は、実は(遙か彼方の)地球の周りに輝く”夕焼け”に照らされた赤い月だったのです。 皆既月食を迎えるとき、地球の月面は地球の影が作る夕焼けに照らされて夜になり、一時間ほどの夜を過ごし、そして、地球が作る朝焼けがその夜を終わらせます。 そんな”地球の夕焼けと朝焼け”に照らされて、赤く染まる月を、私たちがその地球の上から眺めていたのです。 …何だか、少し不思議で、とてもロマンチックですね。