Intro
La sequenza di commutazione è definita in questo modo:
Inizia con le npersone in piedi in un cerchio ( 6per questo esempio).
1 2
6 3
5 4
A partire dalla persona 1, la persona che si trova alla sinistra della persona "scelta" viene rimossa.
1
6 3
5 4
La persona rimossa può "cambiare" il metodo di rimozione:
- Se la persona rimossa è pari (come in questo caso), la persona rimossa successiva sarà alla destra della persona "scelta" successiva.
- Se la persona rimossa è dispari, la persona rimossa successiva sarà alla sinistra della persona "scelta" successiva.
La persona scelta successiva dipende anche dalla persona precedentemente rimossa.
- Se la persona rimossa è pari, la persona scelta successiva sarà alla destra della persona scelta in precedenza.
- Se la persona rimossa è dispari, vedi sopra, ma sostituisci "destra" con "sinistra".
Quindi la prossima persona scelta è allora 6.
Ora rimuoviamo la persona a destra di 6, che è 5:
1
6 3
4
Perché 5è strano, la persona rimossa è ora a sinistra. La nuova persona scelta è 1.
Ora rimuoviamo 3:
1
6
4
Continuiamo questo processo, fino a quando non ci resta 1 numero - in questo esempio, il numero finale è 1. Quindi quindi S(6) = 1.
I primi numeri sono:
n | S(n)
---------
1 | 1
2 | 1
3 | 3
4 | 1
5 | 5
6 | 1
7 | 3
8 | 6
9 | 5
10 | 6
11 | 9
Compito
Il tuo compito è creare un programma (o una funzione) che ritorni S(n)(il nnumero th nella sequenza Switching) quando viene dato n, usando il minor numero di byte.
Ingressi e uscite di esempio:
1 -> 1
10 -> 6
13 -> 13
Hai la garanzia di ottenere un numero intero positivo.
Questo è code-golf , quindi vince il codice più breve in byte!
Nota: non esiste una sequenza OEIS (cosa?), Per risparmiare il disturbo della ricerca.
2non rimane mai, ma lo fa 7?