Ispirato da Tratto da una domanda in overflow dello stack .
La sfida
Dato un numero intero n>1
, genera tutti gli array che possono essere ottenuti scambiando esattamente due voci nell'array [1, 2, ..., n]
.
Le matrici possono essere prodotte in qualsiasi ordine.
È possibile utilizzare in modo coerente [0, 1, ..., n-1]
(basato su 0) anziché [1, 2, ..., n]
(basato su 1).
Regole aggiuntive
Ingresso e uscita sono flessibili come al solito .
Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
Vince il codice più breve in byte.
Casi test
Input 2
fornisce output (presupposto 1 basato)
2 1
Input 3
fornisce output (si noti che i tre array potrebbero essere in qualsiasi ordine)
1 3 2
2 1 3
3 2 1
L'input 4
fornisce output
1 2 4 3
1 3 2 4
1 4 3 2
2 1 3 4
3 2 1 4
4 2 3 1
L'input 7
fornisce output
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]
! Mi sento sempre un po 'seccato quando devo puntare su un 1+
indice zero perché J.