El reto
Considere el siguiente diagrama del Fifteen Puzzle en su estado resuelto:
_____________________
| | | | |
| 1 | 2 | 3 | 4 |
|____|____|____|____|
| | | | |
| 5 | 6 | 7 | 8 |
|____|____|____|____|
| | | | |
| 9 | 10 | 11 | 12 |
|____|____|____|____|
| | | | |
| 13 | 14 | 15 | |
|____|____|____|____|
En cada movimiento, un rompecabezas emocionado tiene la oportunidad de mover una pieza adyacente al espacio en blanco al espacio en blanco. Por ejemplo, después del 1
movimiento, tenemos 2
escenarios posibles (dejemos 0
un espacio en blanco):
1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8
9 10 11 12 and 9 10 11 0
13 14 0 15 13 14 15 12
Después de los 2
movimientos, el rompecabezas tiene 5
diferentes resultados ( tenga en cuenta que los dos casos anteriores están excluidos, ya que no se pueden alcanzar en 2 movimientos). Una de estas situaciones es el estado resuelto original, y se puede alcanzar de dos maneras diferentes.
Su tarea en este desafío es producir el número de resultados diferentes a los que puede conducir un cierto número de movimientos. Como entrada, tome un númeroN >= 0
y genere el número de situaciones únicas que pueden aparecer después de los N
movimientos.
Reglas
- Este es el código de golf. ¡El código más corto gana!
- Lagunas estándar no están permitidas.
- Su código debería poder calcular el caso
N = 10
dentro de unos minutos. Probablemente no probaré esta regla a menos que exista un abuso obvio del tiempo en una respuesta.
Casos de prueba
(Resultados generados a partir de las sumas de OEIS A089484 (Como describió Geobits en el chat ), automatizado por el script de Martin Büttner . ¡Gracias por toda la ayuda!)
0 moves: 1
1 moves: 2
2 moves: 5
3 moves: 12
4 moves: 29
5 moves: 66
6 moves: 136
7 moves: 278
8 moves: 582
9 moves: 1224
10 moves: 2530
11 moves: 5162
12 moves: 10338
13 moves: 20706
14 moves: 41159
15 moves: 81548
16 moves: 160159
17 moves: 313392
18 moves: 607501
19 moves: 1173136
20 moves: 2244884
21 moves: 4271406
22 moves: 8047295
23 moves: 15055186
24 moves: 27873613
25 moves: 51197332
26 moves: 93009236
27 moves: 167435388
28 moves: 297909255
29 moves: 524507316
30 moves: 911835416
31 moves: 1566529356
s.add
probablemente salvaría a algunos personajes.