introduzione
Ho definito la classe di permutazioni ansiose in una sfida precedente . Come promemoria, una permutazione p dei numeri da 0 a r-1 è ansiosa, se per ogni voce p [i] eccetto la prima, c'è qualche voce precedente p [ik] tale che p [i] == p [ ik] ± 1 . Come fatto divertente, ho anche affermato che per r ≥ 1 , ci sono esattamente 2 permutazioni antsy r-1 di lunghezza r . Ciò significa che esiste una corrispondenza uno a uno tra le permutazioni antsy della lunghezza r e i vettori binari della lunghezza r-1. In questa sfida, il tuo compito è implementare tale corrispondenza.
L'obiettivo
Il tuo compito è scrivere un programma o una funzione che includa un vettore binario di lunghezza 1 ≤ n ≤ 99 e produca una permutazione ansiosa di lunghezza n + 1 . La permutazione può essere basata su 0 o su 1 (ma questo deve essere coerente) e l'input e l'output possono essere in qualsiasi formato ragionevole. Inoltre, input diversi devono sempre fornire output diversi; a parte questo, sei libero di restituire qualunque permutazione ansiosa desideri.
Vince il conteggio dei byte più basso.
Esempio
Le permutazioni antsy (basate su 0) della lunghezza 4 sono
0 1 2 3
1 0 2 3
1 2 0 3
1 2 3 0
2 1 0 3
2 1 3 0
2 3 1 0
3 2 1 0
e il tuo programma dovrebbe restituirne uno per ciascuno dei vettori a otto bit di lunghezza 3:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1
e 0 0 1
dovrebbe fornire output di diverse lunghezze.