Googleの求人広告~自然対数の底eと素数の求め方


  • このエントリーをはてなブックマークに追加

001l

上の写真は2004年にシリコンバレーの高速道路沿いに掲出された求人広告です。ネットでは度々話題になっているようなのでご存知の方も多いかもしれません(私は最近知りました…(^_^;)。この看板だけではこれがGoogle(グーグル)の求人広告であることすら分かりませんね。

看板には
{first 10-digit prime found in consecutive degits of e}.com
とありますので、日本語にすると
{eの連続する桁で、最初に出てくる10桁の素数}.com

と書いてあることになります。

「eの連続する桁」という部分で「なんのこと??(・・?」となる人は多いと思いますが、これは

自然対数の底e=2.718…

のことを指しています。

 

自然対数の底e

自然対数の底eとは、次のような小難しい式で定義される数です(別の定義もあります)。m(_ _)m

2013-04-06_1506

eが上の式を満たすような値のとき、指数関数 y=ex x=0における接線の傾きは1になります。

グラフにするとこんな感じです。

2013-04-06_1135

ちょっと難しいですね…。これは高校3年生の数学(数Ⅲ)で勉強する内容です。

大雑把に言えば、指数関数のグラフがy軸を横切るときに傾きが1になるような底(y=ax a のこと)を自然対数の底と言ってeで表す、ってことです。で、このeを計算してみると、とんでもないことになります。実はこの自然対数の底eは

自然対数の底eの値

永遠に続く数(無理数=分数で表せない数)なんです⇒参考サイト(Wikipedia)

さあ、この中から最初に出てくる10桁の素数を探さなければなりません…(;´д`)

素数の探し方

ちなみに、ある数が素数かどうかを見分けるためにはどうしたら良いのでしょうか?

素数というのは、1と自分自身以外には約数を持たない自然数のことです。

ためしに49という数の約数を調べてみましょう。

49=1×49

49=7×7

ですから49の約数は、1、7、49ですね。1と49以外に7も約数ですから49は素数ではありません。

では、13はどうでしょう?

13÷2=6…1 :割り切れない

13÷3=4…1 :割り切れない

はい。よって13は素数です。

え?もっと調べなくてもいいのかって?いいんです。(⌒-⌒)

3×3<13<4×4

より、

2013-04-06_1312

なので、もし13が素数でなければ必ず3以下の素数を持つはずだからです。

…と言っても、多くの人にとってはなるほど~とはならないと思いますので説明しますね。

13=x × y

としましょう 。このとき、x y は13の約数ですね。上の式は

2013-04-06_1405

と変形できますので、y x に反比例します。反比例のグラフは次のようなものでしたね。

 

2013-04-06_1406

 

ある数の約数を探すというのは、反比例のグラフ上の格子点(x 座標も y 座標も整数の点)を探すことと同じです。そして反比例のグラフは y = x に関して対称なので、結局は上のグラフの青い部分だけを探せば良いのです。具体的には

2013-04-06_1415

の部分から探せば十分だということになります。

 

もうちょっと大きい数でも練習してみましょう。たとえば、151。

この数が素数かどうかを調べるには、

2,3,5,7,11,……と小さい素数から順に割ってみれば良いのですが、

122=144、132=169より、

12×12<151<13×13

ですから、もし151が素数でなければ必ず12以下の約数をもつはずです。つまり、調べるのは12以下の素数すなわち11までで十分です。

151÷2=75…1 :割り切れない

151÷3=50…1 :割り切れない

151÷5=30…1 :割り切れない

151÷7=21…4 :割り切れない

151÷11=13…8 :割り切れない

 

です。はい、これで151は素数であることが分かります。

 

ふう。大分長くなってしまいましたね。

ではいよいよ、グーグルの問題を解いてみましょう。

Googleの問題に挑戦

今、Nが10桁の素数だとします。このとき、

N<1010

なので

2013-04-06_1325

より、実際に割り算をしてみるのは5桁までの素数でよいことになります。すなわち10万以下の素数で順次割っていけばよいのです。素数は下記サイトなどで調べることができます。

素数一覧

はい、ここから先はエクセルなどの表計算ソフトの出番です。さきほどの自然対数の数列から1桁ずらしながら10桁ずつを取り出してセルの横に並べ、10万以下の素数を縦に並べて割り算を実行するマクロを組めば、比較的簡単に(?)見つかります。答えは…

e =2.7182818284590452353602874713526624977572470936999595749669676277240766303535 47594571382178525166427427466391932…

と、100桁くらいの所に出てくる「7427466391」です。

で、当時は実際に{7427466391.com}にアクセスすると、次の問題があって、さらにそれが解けるとやっとGoogleに履歴書が送れる仕組みだったそうです。

 

130406

いやはや、さすがGoogleというべきか、求人一つをとっても随分と楽しませてくれます。この看板による一見不思議な求人は

・自然対数の底eを知っている程度の数学的素養

・ある数が素数かどうかを調べるにはどうしたらよいかを考える力

・eの数列や10万以下の素数を調べる力

・簡単なプログラム(表計算ソフト)が使える力

・不思議な問題を解いてやろうという知的好奇心

などを見ることができて、実に面白いと思います。

top_o_

Googleは毎年、こんな風な求人をしているのでしょうか?(^_-)-☆

follow us in feedly

Post Navigation