cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A090573 Number of configurations of the 3-dimensional 3 X 3 X 3 sliding cube puzzle that require a minimum of n moves to be reached, starting with the empty space at one of the enclosing cube corners.

This page as a plain text file.
%I A090573 #12 Dec 29 2020 06:32:07
%S A090573 1,3,9,30,102,324,1029,3096,9960,30732,97932,295924,929202,2766958,
%T A090573 8590731,25271897,77575820
%N A090573 Number of configurations of the 3-dimensional 3 X 3 X 3 sliding cube puzzle that require a minimum of n moves to be reached, starting with the empty space at one of the enclosing cube corners.
%C A090573 The 3 X 3 X 3 sliding cube puzzle is a generalization of the 2 X 2 X 2 3-D puzzle A090572. There are various designs of this 3 X 3 X 3 puzzle, but in most of them the central cube is not freely accessible and the empty space cannot be moved to the central location of the cube. The design treated in this sequence assumes full accessibility of the central location.
%D A090573 Ji-Ha You, Three dimensional puzzle with blocks - has cube frame with hollow interior and movable blocks filled on one side with magnet. German Patent application DE-4106826 A1, March 4, 1991 - see link
%H A090573 Ji-Ha You, <a href="http://v3.espacenet.com/origdoc?IDX=DE4106826">Dreidimensionales Spielgeraet</a>. Offenlegungsschrift DE-4106826 A1.
%o A090573 (Python) # uses alst(), swap() in A089473
%o A090573 def moves3d(p, shape, fixed=None): # n x m x r puzzle
%o A090573   nxt, (n, m, r) = [], shape
%o A090573   L, z = n*m, p.find("-") # z: location of blank
%o A090573   zq, zr = divmod(z, L)
%o A090573   if zr > n - 1:  nxt.append(swap(p, z, z-n)) # blank up
%o A090573   if zr < n*m-n:  nxt.append(swap(p, z, z+n)) # blank down
%o A090573   if zr%n != 0:   nxt.append(swap(p, z, z-1)) # blank left
%o A090573   if zr%n != n-1: nxt.append(swap(p, z, z+1)) # blank right
%o A090573   if zq > 0:      nxt.append(swap(p, z, z-L)) # blank in
%o A090573   if zq < r - 1:  nxt.append(swap(p, z, z+L)) # blank out
%o A090573   return [m for m in nxt if m.find("-") != fixed]
%o A090573 moves = lambda p, shape: moves3d(p, shape)
%o A090573 start, shape = "-123456789ABCDEFGHIJKLMNOPQ", (3, 3, 3)
%o A090573 print(alst(start, shape, maxd=12)) # _Michael S. Branicky_, Dec 28 2020
%Y A090573 Cf. A090572 2 X 2 X 2 puzzle, A090574, A090575, A090576 3 X 3 X 3 puzzle with different initial configurations.
%K A090573 fini,hard,more,nonn
%O A090573 0,2
%A A090573 _Hugo Pfoertner_, Jan 15 2004
%E A090573 a(13)-a(16) from _Michael S. Branicky_, Dec 28 2020