ProjectEulerを知っていますか?
数学奇人の心はあまりくすぐらないのかもしれません。わたしは好きなんです。
ProjectEulerとは
ProjectEulerとは数学やプログラミングに興味のある大人や大学生に人気のサイトです。
プロジェクト・オイラー(英: Project Euler、名称はレオンハルト・オイラー由来)は、数学やプログラミングなどに興味を持つ大人や学生が主な利用者であり、プログラミング (コンピュータ)による一連の計算問題の解決を目的としたウェブサイトである。 400以上[2]の問題の他に毎週末毎に1問ずつ増えており、様々な難問が用意されているが、 一般的なスペックのパソコンで効率的なアルゴリズムを用いれば、いずれも1分未満で解ける。 正答回答者のみが各問題の掲示板を閲覧できる[3]。 2001年に創設されて以来世界的な知名度と人気を得ており、2013年10月の時点では世界中から34万人以上の利用者(最低1問以上の正答者)を有する[4]。 利用者は正答数に応じて最大16のレベルが振り分けられ、各々の進捗状況を確認できる。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%BB%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC
計算問題がたくさん掲載されていて、コンピュータのプログラミングによってその計算結果を求めることが目的です。
ただ、聞かれていることをそのままプログラミングするだけでは解決できない問題も多く、また、解決できたとしてもかなりの時間を要することもあります。
同じ問題を解決するにしても、いかに上手に考え、いかに上手にプログラミングするか、が解答者たちの目的であり、モチベーションであり、争点なんです。
例題
例題を一つ。ProjectEulerの第3問です。
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
和訳です。
13195 の素因数は 5, 7, 13, 29 である.
600851475143 の素因数のうち最大のものを求めよ.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%203
どうでしょう。手でやる気にはなりませんよね。
ちなみにわたしはコンピュータに素因数分解をさせるプログラムを作って計算させたのですが、素因数分解ひとつとっても結構な工夫があるんですよ。使った言語はRubyです。