A partire dalla stringa ABC
, considera il risultato di aggiungere ripetutamente l'ultima metà di se stesso a se stesso (utilizzando la metà più grande se la lunghezza è dispari).
Otteniamo la progressione:
ABC
ABCBC
ABCBCCBC
ABCBCCBCCCBC
ABCBCCBCCCBCBCCCBC
etc...
Lasciate S
rappresentare la stringa (o sequenza) infinita risultante che risulta quando questa procedura viene ripetuta per sempre.
Obbiettivo
L'obiettivo di questa sfida del codice è trovare l'indice della prima occorrenza di esecuzioni di C
'in S
.
All'inizio è facile: C
prima si presenta all'indice 2
, CC
alle 4
, CCC
alle 7
, CCCC
alle 26
, ma CCCCC
è completamente all'indice 27308
! Dopodiché la mia memoria si esaurisce.
Il vincitore sarà l'invio che genera correttamente gli indici più eseguiti (in ordine, a partire da C
). Puoi usare qualsiasi tipo di algoritmo ma assicurati di spiegarlo se non stai usando la forza bruta di base. L'input e l'output possono essere in qualsiasi formato di facile comprensione.
Nota importante: non so ufficialmente se S
contiene effettivamente tutte le esecuzioni di C
. Questa domanda è derivata da questa nello scambio di stack di matematica , in cui neanche l'autore ha trovato CCCCCC
. Sono curioso di sapere se qualcuno qui può. (Tale domanda è a sua volta basata sulla mia domanda originale sull'argomento .)
Se riesci a provare che non si C
verificano tutte le prove, S
allora vincerai automaticamente poiché questa domanda non sarà più valida. Se nessuno può dimostrarlo né trovarlo, CCCCCC
il vincitore sarà la persona che può ottenere il limite inferiore più alto sull'indice di CCCCCC
(o qualunque sia la più grande scala irrisolta se CCCCCC
viene trovata).
Aggiornamento: Humongous kudos to isaacg and res che hanno trovato CCCCCC
nell'indice astronomico di 2.124 * 10 ^ 519. Di questo passo non riesco a immaginare di trovarlo CCCCCCC
con alcun metodo che si basi sulla forza bruta. Buon lavoro ragazzi!
CCCCC
all'indice 27308, ma in seguito sembra che tu non sappia dove si verifica per primo. Volevi direCCCCCC
?