Definición
De la descripción en OEIS A006345 :
Para buscar
a(n), considere a1o a2. Para cada uno, encuentre el sufijo repetido más largo, es decir, para cada unoa(n)=1,2, encuentre la secuencia más largascon la propiedad con la quea(1),...,a(n)termina la secuenciass. Use el dígito que resulta en el sufijo más corto.a(1) = 1.
Ejemplo resuelto
a(1)=1.
Si a(2)=1, tendremos la secuencia 1 1donde está la subcadena duplicada más larga desde el final 1. Si a(2)=2, en cambio, sería la subcadena vacía. Por lo tanto a(2)=2.
Cuando n=6, elegimos entre 1 2 1 1 2 1y 1 2 1 1 2 2. En la primera opción, 1 2 1se duplica consecutivamente desde el final. En la segunda opción, es en su 2lugar. Por lo tanto, a(6)=2.
Cuando n=9, elegimos entre 1 2 1 1 2 2 1 2 1 y 1 2 1 1 2 2 1 2 2. En la primera opción, la subcadena doble más larga consecutiva es 2 1, mientras que en la segunda opción 1 2 2se duplica consecutivamente al final. Por lo tanto a(9)=1.
Tarea
Dado n, regreso a(n).
Especificaciones
nserá positivo- Puede usar 0 indexado en lugar de 1 indexado. En ese caso, indíquelo en su respuesta. Además, en ese caso,
npuede ser0también.
Casos de prueba
Las cajas de prueba están indexadas en 1. Sin embargo, puede usar 0 indexado.
n a(n)
1 1
2 2
3 1
4 1
5 2
6 2
7 1
8 2
9 1
10 1
11 2
12 1
13 2
14 2
15 1
16 1
17 2
18 1
19 1
20 1
Referencias
- WolframMathWorld
- Obligatorio OEIS A006345
fuente

n=9, la primera opción1 2 1 1 2 2 1 2 1tiene la subcadena duplicada2 1al final.Respuestas:
Haskell,
146140137133118 bytesfuente
(\x->(\s->...? De lo contrario, podrías escribir(\x s->....div ..., puede usar el más corton. Todas las comparaciones adicionales devolverán falso y no cambiarán el resultado.Python, 137 bytes
Esta solución está usando indexación basada en 0.
fuente
Jalea ,
25242220 bytes2 bytes gracias a Dennis.
Pruébalo en línea!
Un puerto de mi respuesta en Pyth .
fuente
Mathematica, 84 bytes
fuente
Jalea ,
3029282724 bytesPruébalo en línea! o verificar todos los casos de prueba .
fuente
MATL , 34 bytes
Pruébalo en línea! o verificar todos los casos de prueba .
Explicación
fuente
Python 2, 94 bytes
Utiliza indexación basada en 0. Pruébelo en Ideone .
fuente
Pyth , 26 bytes
Banco de pruebas.
Explicación
Cuando
n = 6, elegimos entre1 2 1 1 2 1y1 2 1 1 2 2.Generamos estas dos posibilidades, y luego miramos sus sufijos.
Para el primero, los sufijos son:
1,2 1,1 2 1,1 1 2 1,2 1 1 2 1,1 2 1 1 2 1.Filtramos los sufijos duplicados comprobando si son iguales después de rotarlos por su longitud dividida por 2 (resulta que esta comprobación no es perfecta, porque confirma
1y2también).Tomamos el último sufijo duplicado y luego tomamos su longitud.
Luego elegimos la posibilidad que corresponde a una longitud mínima generada anteriormente.
Luego procedemos al siguiente valor de
n.Para el propósito de este programa, era más golfoso generar la matriz invertida.
fuente
Pyth,
4629 bytesSe inspiró en la excelente respuesta Pyth de @Leaky Nun. Intenté ver si había una forma más corta de usar cuerdas. Todavía 3 bytes cortos!
Puedes probarlo aquí .
fuente
uce en lugar de for-loop explícito le ahorra 4 bytesRetina ,
5142 bytes9 bytes gracias a Martin Ender.
Pruébalo en línea!
Un puerto de esta respuesta .
fuente
Perl, 40 bytes
El código tiene 39 bytes de longitud y requiere el
-pcambio ( +1 byte).El bucle está inspirado en la solución Perl en la página OEIS relevante , aunque se me ocurrió de forma independiente con la expresión regular.
Pruébelo en Ideone .
fuente
JavaScript (ES6), 84
Índice base 0
Menos golf
Prueba
fuente