5
$\begingroup$

I am writing a program to solve a Rubik's cube, and would like to know the answer to this question.

There are 12 ways to make one move on a Rubik's cube. How many ways are there to make a sequence of six moves?

From my project's specification: up to six moves may be used to scramble the cube. My job is to write a program that can return the cube to the solved state. I am allowed to use up to 90 moves to solve it. Currently, I can solve the cube, but it takes me over 100 moves (which fails the objective)... so I ask this question to figure out if a brute force method is applicable to this situation.

If the number of ways to make six moves is not overly excessive, I can just make six random moves, then check to see if the cube is solved. Repeat if necessary.

$\endgroup$
4
  • 4
    $\begingroup$ Are you asking for how many distinct results are there after 6 moves? Or just for how many ways you can make 6 moves, regardless of their uniqueness? $\endgroup$
    – bzc
    Commented Nov 9, 2010 at 19:07
  • $\begingroup$ I think we should assume we are looking for distinct configurations, since this makes the problem a lot harder/interesting and is more practical for the programming application. $\endgroup$ Commented Nov 10, 2010 at 15:55
  • $\begingroup$ I'm editing the OP to give full details. $\endgroup$
    – dfetter88
    Commented Nov 10, 2010 at 20:36
  • $\begingroup$ Rather than brute forcing it you could try and implement a solving algorithm from the ones known until now. I'm sure there are some which can get down to less than 50 moves. For example this: ws2.binghamton.edu/fridrich/cube.html Just making random moves until it's done seems it could make lots of unuseful moves, and I guess the 90 limit moves needs some intelligent algorithm. $\endgroup$ Commented Apr 27, 2012 at 9:04

2 Answers 2

3
$\begingroup$

12^6 is just under 3 million. So it would probably not work to randomly try six unscrambles. But it wouldn't be too hard to make a data file of all the positions and their unscramble twists if you can find a reasonable way to search it, like some hash function on a description of the position.

$\endgroup$
3
  • $\begingroup$ Creating a hash table of 3 million cube states and their respective solutions? Maybe not "difficult", but definitely a large task. $\endgroup$
    – dfetter88
    Commented Nov 10, 2010 at 22:34
  • $\begingroup$ But I think a computer can do it in not too much time. Loop over the possibilities for the moves, calculate the final state of the cube, calculate your hash function, store the solution in a table. I've done much more calculation than that for some of the Project Euler problems, though the program was simpler. $\endgroup$ Commented Nov 10, 2010 at 23:04
  • $\begingroup$ +1 because that is the most practical way to go about solving this problem (for up to 6 moves). $\endgroup$
    – evgeny
    Commented Sep 20, 2011 at 5:40
2
$\begingroup$

There are 7,618,438 diferent positions after six movements according to this site, but they use face movements. By the way they show that the Rubik's cube can be solved in 20 face movements or less.

$\endgroup$
2
  • $\begingroup$ I think there may be more: that number excludes positions which can be reached in six moves but which can also be reached in fewer. $\endgroup$
    – Henry
    Commented Sep 25, 2011 at 21:34
  • $\begingroup$ @Henry: You are right. actually the number I gave allows 18 legal moves while the OP ask for 12 (90 deg twists) so the number of different positions after at most 6 moves is a lot smaller: 1056772. Actually the method given by him (make six random moves until the puzzle is solved) fails for the 96696 positions after 5 moves if it does not take this into account. $\endgroup$ Commented Sep 26, 2011 at 15:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .