A long long time ago I discovered Project Euler, a competition of sorts where the goal is to solve numerous mathematical puzzles with the aid of a computer. I originally thought it to be too difficult, but recently I revisited the site and discovered that I could actually solve the problems with what I’ve learned over the past few years.
Those of you with a programming inclination would probably be interested: it requires the use of some very clever techniques (so you can calculate such beastly numbers as 4000 factorial relatively quickly), and best of all, you can use any programming language you’d like.
So far I’ve solved 21 of the problems. I’ve mostly been brute-forcing the solutions (“guess and check”), but as I work my way into more complex problems which would take hours to brute-force, I’m being forced into cleverer and cleverer programs. It’s very intellectually stimulating.
If you’re up for it, try it out with your programming language of choice. It’ll help both your math skills and your programming skills — there’s nothing like trying to find the best way of calculating 4000 factorial in Lisp to make you learn about the language.
I’m glad to see another PE’er. The key to many of the problems is “smart” brute-forcing, ie, finding some way to drastically reduce the number of conditions you need to check.
Since most of the problem forums are closed now, if you come up with a particularly elegant solution you’d like to share, I would love to see it!