I know mobile phones are as powerful as the mainframes of old but it is still something of a shock whenever such a device takes on a real processing challenge.
Now it seems
Android phone + Rubik's cube = solution in 12.5 seconds.
Not only does the phone solve the problem of unscrambling the cube, it controls a Lego Mindstorms setup that actually does the unscrambling by manipulating a real cube. It also determines the initial configuration using its video camera to scan the cube - see the video for proof.
The phone in question was an HTC Nexus One runnning Android 2.1 on a 1G Snapdragon (ARM) processor with half a GByte of memory. Ironically an earlier version powered by a Nokia N95 managed the task but took twice as long - which is reasonable since it operated at half the clock speed.
Not content with solving the standard 3x3x3 puzzle the next step was to generalise to the nxnxn puzzle. A general table driven algorithm can handle cubes of any size but the largest the hardware has been created for is a 7x7x7 puzzle. The solution takes about 40 minutes on the same Android phone.
Currently these solvers can't compete with humans but only because the Lego is limited to 1.5 moves per second and a human can manage 5 to 6. It may not be as fast but it's impressive and amazing to watch.
Is there anything you can't do with a mobile phone and some Lego?
Code Jam is Google's annual coding competition that challenges programmers to solve algorithmic puzzles. It comprises multiple online rounds and concludes in the World Finals, to be held this year at [ ... ]