Comenzando con la cadena ABC
, considere el resultado de agregar repetidamente la última mitad de sí mismo (usando la mitad más grande si la longitud es impar).
Obtenemos la progresión:
ABC
ABCBC
ABCBCCBC
ABCBCCBCCCBC
ABCBCCBCCCBCBCCCBC
etc...
Supongamos que S
representa la secuencia (o secuencia) infinita resultante que se produce cuando este procedimiento se repite para siempre.
Gol
El objetivo en este desafío de código es encontrar el índice de la primera aparición de corridas de C
's en S
.
Al principio es fácil: C
primero ocurre en el índice 2
, CC
en 4
, CCC
en 7
, CCCC
en 26
, ¡pero CCCCC
está en el índice 27308
! Después de eso se me acaba la memoria.
El ganador será el envío que genere correctamente la mayoría de los índices de ejecución (en orden, comenzando en C
). Puede usar cualquier tipo de algoritmo, pero asegúrese de explicarlo si no está usando la fuerza bruta básica. La entrada y la salida pueden estar en cualquier formato fácil de entender.
Nota importante: No sé oficialmente si S
contiene o no todas las ejecuciones de C
's. Esta pregunta se deriva de esta en el Mathematics Stack Exchange , en el que el autor tampoco ha encontrado CCCCCC
. Tengo curiosidad si alguien aquí puede. (Esa pregunta a su vez se basa en mi pregunta original sobre el tema ).
Si puede demostrar que no se C
producen todas las corridas S
, ganará automáticamente ya que esta pregunta ya no será válida. Si nadie puede probar eso ni encontrarlo, CCCCCC
entonces el ganador será la persona que pueda obtener el límite inferior más alto en el índice de CCCCCC
(o cualquiera que sea la carrera sin resolver más grande si CCCCCC
se encuentra).
Actualización: Felicitaciones a isaacg y res que han encontrado CCCCCC
en el índice astronómico de 2.124 * 10 ^ 519. A este ritmo, no puedo imaginar encontrar CCCCCCC
con ningún método que se base en la fuerza bruta. Buen trabajo chicos!
CCCCC
en el índice 27308, pero luego parece que no sabes dónde ocurre por primera vez. Quiso decirCCCCCC
?