Починаючи з рядка ABC, розглянемо результат багаторазового додавання останньої половини до себе (використовуючи більшу половину, якщо довжина непарна).
Ми отримуємо прогресування:
ABC
ABCBC
ABCBCCBC
ABCBCCBCCCBC
ABCBCCBCCCBCBCCCBC
etc...
Нехай Sпредставляє результуючу нескінченну рядок (або послідовність), що призводить до того, що ця процедура повторюється назавжди.
Мета
Мета в цьому виклику коду - знайти індекс першого появи запусків Cs у S.
Спочатку це легко: Cспочатку виникає в індексі 2, CCу 4, CCCна 7, CCCCу 26, але CCCCCвесь шлях в індексі 27308! Після цього моя пам’ять закінчується.
Переможцем стане подання, яке правильно генерує найбільш запущені індекси (для порядку, починаючи з C). Ви можете використовувати будь-який алгоритм, але обов'язково поясніть це, якщо ви не використовуєте основну грубу силу. Введення та вихід можуть бути в будь-якому простому для розуміння форматі.
Важлива примітка: Я офіційно не знаю, Sмістить чи ні насправді всі запуски C. Це запитання випливає з цього питання на Mat Exchange Stack Exchange , в якому автор так і не знайшов CCCCCC. Мені цікаво, якщо хто тут може. (Це запитання, в свою чергу, ґрунтується на моєму первісному питанні з цієї теми .)
Якщо ви зможете довести, що не всі запуски Cтрапляються, Sви виграєте автоматично, оскільки це питання більше не буде дійсним. Якщо ніхто не може довести, що ні знайти, CCCCCCто переможцем буде та людина, яка зможе отримати найвищу нижню межу індексу CCCCCC(або будь-якого найбільшого невирішеного пробігу, якщо CCCCCCбуде знайдено).
Оновлення: Гумонні кудо до isaacg і res, які знайшли CCCCCCза астрономічним показником 2.124 * 10 ^ 519. З цією швидкістю я не можу уявити, щоб знайти CCCCCCCбудь-який метод, який спирається на грубу силу. Гарна робота хлопці!
CCCCCв індексі 27308, але пізніше це здається, що ви не знаєте, де це вперше відбувається. Ви мали на увазіCCCCCC?