Dato N, genera l'ennesimo termine di questa sequenza infinita:
-1 2 -2 1 -3 4 -4 3 -5 6 -6 5 -7 8 -8 7 -9 10 -10 9 -11 12 -12 11 ... etc.
N può essere 0-indicizzato o 1-indicizzato come desideri.
Ad esempio, se 0-indicizzati poi ingressi 0
, 1
, 2
, 3
, 4
dovrebbe produrre rispettive uscite -1
, 2
, -2
, 1
, -3
.
Se 1-indicizzato poi ingressi 1
, 2
, 3
, 4
, 5
dovrebbe produrre rispettive uscite -1
, 2
, -2
, 1
, -3
.
Per essere chiari, questa sequenza viene generata prendendo la sequenza di numeri interi positivi ripetuti due volte
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 ...
e riordinando ogni coppia di numeri dispari per circondare i numeri pari appena sopra di esso
1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7 9 10 10 9 11 12 12 11 ...
e infine negando ogni altro termine, a cominciare dal primo
-1 2 -2 1 -3 4 -4 3 -5 6 -6 5 -7 8 -8 7 -9 10 -10 9 -11 12 -12 11 ...
Vince il codice più breve in byte.
1,1,2,2,3,3,4,4,...
ma eccolo qui 1,2,2,1,3,4,4,3,...
.