bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

オイラー・プロジェクト紹介

1.猛暑の過ごし方

地球温暖化の兆候なのだろうか今年の夏はとても暑い日が続いている。その日の最高温度が35度を超えると猛暑日と呼ばれるが、東京では、7月31日から8月7日までの8日間連続で猛暑日を記録し、これまでの記録を更新した。

オーストラリアのアデレードに滞在していたころに、40度を超える暑さを経験したことがある。アデレードでは40度を超えると屋外でスポーツをすることは禁止されるのだが、警告が出そうなぎりぎりの暑さの中でテニスをしたことがある。しかし、アデレードの夏はとてもドライで、木陰に入れば涼を取ることができる。また、ぜいたくなことに芝のコートなので、地面からの照り返しもないので、このような暑さの中でもテニスに興じることができた。

日本でこのような猛暑の中でスポーツをすればたちどころに熱中症になってしまうだろうが、高校三年生の時の夏休みはほとんどテニスをして過ごした。世田谷の等々力渓谷に日本窒素のコートがあり、友人と二人でテニスにいそしんだ。秋になり勉強に戻った時、担任の先生から、何をしていたのかと聞かれるほどに二人ともあまりにも真っ黒な顔をしていた。さすがに、この年の大学受験に失敗したが(友人のほうは成功した)、青春時代のいい思い出である。

2.オイラー・プロジェクト

日本での猛暑をしのぐための伝統的な方法は、「四谷怪談」に代表される怖いお化けの話を聞いて涼をとることだが、数学の問題をHaskellで解くのはどうだろうか。面白そうなブログを見つけたので、紹介しよう。ただし、解を示すとこのブログの趣旨に反することになるので、問題の紹介だけにする。ブログの名称はProject Eulerである。アーカイブには512の問題が、また、さらに最近の問題として10問が追加されている。

最初のほうの問題は次のようになっている。

問題1:10未満の自然数で3あるいは5の倍数を並べると、3,5,6,9となる。これらの倍数の総和は23となる。
1000未満で、3あるいは5の倍数の全ての総和を求めなさい。

問題2:フィボナッチ数列のそれぞれの新しい項は、前の二つの項を加算することで得られる。1と2で開始すると、最初の10項は次のようになる。
1,2,3,5,8,13,21,34,55,89,...
4百万を超えないフィボナッチ数列での項において、偶数値の項の総和を求めなさい。

問題3:13195の素因数は5,7,13,29である。600851475143の最大の素因数を求めなさい。

問題4:回文構造の数はどちらから読んでも(前からも後ろからも)同じ数のものをいう。二つの2桁の数を掛け合わせてできる最大の数は\(9009=91 \times 99\)である。二つの3桁の数を掛け合わせてできる最大の数を求めなさい。

問題5:2520は1から10までの全ての数で、余りなしに割り切れる数の中で最小のものである。それでは、1から10までの全ての数で、余りなしに割り切れる数(evenly divisible)の中で最小のものを求めなさい。

いずれの問題もHaskellを用いると奇麗に解を記述できるので、挑戦するとよい。なお、それぞれの問題を何人の人が解いたかも明記されているので、難易度を見極めて解いてみるのもよい。難問に没頭して、猛暑を乗り切ってほしい。