Project Euler is a website (https://projecteuler.net) and a…project? Game? At its core, I suppose it’s just a collection of math/programming problems. A typical problem on Project Euler could in theory be done very simply if you had a computer with infinite resources and unlimited run time, but in practice to solve these problems in the most naive way on a computer would either (1) take a prohibitively long time, (2) exceed the maximum number size or precision your computer can handle, or (3) require much more memory than any computer on Earth. However, there is always some smarter way to solve the problem that can be done on a computer in about a minute or less.
You can do the problems in any order, and you can spend as much time as you want on each problem. And, by the way, some of them are very challenging. The final solution (as I have seen so far) is always an integer, but God speed if you think you can just brute force these problems.
The website been around quite a while, and I’ve been a member for a long time, but I never got super-into it even though I like the idea a lot. So far I have done 20 of the problems. They even give you a little badge you can use to verify that. Mine is at https://projecteuler.net/profile/adamcross.png.
I usually freely share almost all the code I write under an open source license on Github, but it’s extremely bad form to share your solution to a Project Euler problem, and I respect that.
That and because I’ve been spending so much time on the job hunt is why I haven’t written much recently.
However, some of the problems on Project Euler have given me ideas for tools I could use to help me solve them. I don’t mean direct solution algorithms. I mean things like, say, a little widget to help explore possible patterns in a numeric sequence. I have never been a fan of inductive reasoning. Seriously, I am a mathematician. “Consider the sequence 2, 4, 8, 16, … What is the next number in the sequence?” If somebody ever asked me something like that on a test, I would say the correct answer is “there is no way to know” or “the question is ill-posed”—something like that. Guessing patterns with no possible way to verify them afterward is not math. It’s not logic. It’s not reasoning. But there are cases where it is extremely useful to guess a pattern so that you can then go back and verify or disprove it.
In fact, as a mathematician I often wished I had better tools for quickly manipulating the numbers and symbols I was working with in a hands-on, interactive way—tools that don’t require hand-writing code in Python or Mathematica every time you want to tweak something.
I haven’t had any good ideas for new widgets to put on widgetwonk.com recently, so I think I’ll start developing some (small) tools to help with this kind of pattern finding. If I publish something I’ll put an update about it here on this blog.