Probably Late On The Bandwagon, But Whatever
For the past week or so I’ve been working through the problem sets of Project Euler. It’s a pretty enjoyable way to dust off some of those discrete mathematics/algorithm analysis/plain-old-logic skills that I haven’t really had to use in a year or so of business software development. As a plus, it’s also helping me strengthen my knowledge of Haskell.
One particularly nice aspect of Project Euler is that it doesn’t provide the solutions or discussion for you until you correctly solve the problem. After that, full discussion threads are available, which I’ve found to be a great way to pick up the insights of others — especially Those Tricks That You Never Thought Of But Seem Obvious In Retrospect. (I have to admit that it’s also nice to have my own insights validated. :P)
Project Euler doesn’t require any particular programming language; indeed, it doesn’t require that you use a digital computer at all_. I just use Haskell because I think it’s cool, and you all know how much of a trend-slave I can be. That said, most of the problems will benefit from having a high-powered computational device; but, hey, if you’re Riemann, GaussGauss, or, uh, Euler, I guess you can work through these with just your brain.
Check it out. I’m “trythil” on there.
Final note: I’d like to see some solutions to these problems in languages which are totally unsuitable but nevertheless powerful enough.
This problem, for example, seems like it would lend itself to a fun visual representation.
(Anyone want to write a program up in MEL ?)