God's Number is 20 (2010)
If you did not solve the Rubik cube (or did not investigate it in general), I highly advice you to try solving it on your own. Just read <i>nothing</i> about it.<p>I did it with the help of programming and it is one of the coolest problems I solved (finding an algorithm to solve any instance).<p>Although I used a computer, it took me something like one or two month to really crack it and lots of RAM to come up with a working solution.<p>Fun fact: My first approach (I just knew, there was this colorful cube problem, but not that it&#x27;s that hard) was a simple recursive Haskell program where I thought I could just brute force the solution in an afternoon (I did not know about the problem&#x27;s math at that point, but looked it up afterwards) ... damn, was I wrong.<p>I remember that the approach involved restricting the operations (turning a specific side) on the cube, and by allowing just 1 side to rotate one gets len([0, pi&#x2F;2, pi, 3pi&#x2F;2]) == 4 solutions, but by allowing _2_ rotations the number jumps to something like ~4*10^7 combinations already.<p>At that point my simple wonderful Haskell program just ate up memory, and I had to rewrite it in another language (after first solving the 2x2x2 cube to keep my motivation). I tried Python (very slow) and Java (which was the fastest), but could not get rid of some GC panics, so in the end it was good old C which found the solution by encoding one state into 24 Bytes and building various fat, unbalanced binary trees, that provided a lookup-table for specific phases of the algorithm.<p>Granted my solution was not the best, but my point is that I would not have found it via Haskell, as I was interested in specific upper bounds to sub-problems and being memory constrained was a nightmare with Haskell (my initial program was nice, it type-checked and for sure terminated, but termination required probably a Petabyte - in any case a too big number - of RAM).