Inspirado en Tomado de una pregunta en Stack Overflow .
El reto
Dado un número entero n>1
, genera todas las matrices que se pueden obtener intercambiando exactamente dos entradas en la matriz [1, 2, ..., n]
.
Las matrices se pueden producir en cualquier orden.
Puede usar constantemente [0, 1, ..., n-1]
(basado en 0) en lugar de [1, 2, ..., n]
(basado en 1).
Reglas adicionales
La entrada y la salida son flexibles como de costumbre .
Se permiten programas o funciones , en cualquier lenguaje de programación . Las lagunas estándar están prohibidas.
El código más corto en bytes gana.
Casos de prueba
La entrada 2
da salida (se supone basada en 1)
2 1
La entrada 3
da salida (tenga en cuenta que las tres matrices podrían estar en cualquier orden)
1 3 2
2 1 3
3 2 1
La entrada 4
da salida
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
La entrada 7
da salida
1 2 3 4 5 7 6
1 2 3 4 6 5 7
1 2 3 4 7 6 5
1 2 3 5 4 6 7
1 2 3 6 5 4 7
1 2 3 7 5 6 4
1 2 4 3 5 6 7
1 2 5 4 3 6 7
1 2 6 4 5 3 7
1 2 7 4 5 6 3
1 3 2 4 5 6 7
1 4 3 2 5 6 7
1 5 3 4 2 6 7
1 6 3 4 5 2 7
1 7 3 4 5 6 2
2 1 3 4 5 6 7
3 2 1 4 5 6 7
4 2 3 1 5 6 7
5 2 3 4 1 6 7
6 2 3 4 5 1 7
7 2 3 4 5 6 1
[0 ... n-1]
vs [1 ... n]
! Siempre me siento un poco molesto cuando tengo que añadir un 1+
porque J índices cero.