Introducción
La secuencia de cambio se define así:
Comience con n
personas paradas en círculo ( 6
para este ejemplo).
1 2
6 3
5 4
A partir de la persona 1
, la persona que está a la izquierda de la persona "elegida" se elimina.
1
6 3
5 4
La persona eliminada puede "cambiar" el método de eliminación:
- Si la persona eliminada es par (que es en este caso), la próxima persona eliminada estará a la derecha de la siguiente persona "elegida".
- Si la persona eliminada es impar, la siguiente persona eliminada estará a la izquierda de la siguiente persona "elegida".
La siguiente persona elegida también depende de la persona eliminada previamente.
- Si la persona eliminada es par, la siguiente persona elegida estará a la derecha de la persona elegida anterior.
- Si la persona eliminada es extraña, vea más arriba, pero reemplace "derecha" con "izquierda".
Entonces la siguiente persona elegida es entonces 6
.
Ahora eliminamos a la persona a la derecha de 6
, que es 5
:
1
6 3
4
Porque 5
es extraño, la persona eliminada está ahora a la izquierda. La nueva persona elegida es 1
.
Ahora eliminamos 3
:
1
6
4
Continuamos este proceso, hasta que nos quedemos con 1 número; en este ejemplo, el número final es 1
. Entonces por lo tanto S(6) = 1
.
Los primeros números son:
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
Tarea
Su tarea es hacer un programa (o una función) que devuelva S(n)
(el n
número th en la secuencia de conmutación) cuando se proporciona n
, utilizando la menor cantidad de bytes.
Ejemplo de entradas y salidas:
1 -> 1
10 -> 6
13 -> 13
Tiene garantizado obtener un número entero positivo.
Este es el código de golf , por lo que gana el código más corto en bytes.
Nota: No hay una secuencia OEIS (¿qué?), Para ahorrarle la molestia de buscar.
2
nunca se queda, pero lo hace 7
?