Rozpoczynając od łańcucha ABC, rozważ wynik wielokrotnego dołączania do siebie ostatniej połowy siebie (użycie większej połowy, jeśli długość jest nieparzysta).
Otrzymujemy postęp:
ABC
ABCBC
ABCBCCBC
ABCBCCBCCCBC
ABCBCCBCCCBCBCCCBC
etc...
Niech Sreprezentuje wynikowy nieskończony ciąg (lub sekwencję), który powstaje, ponieważ ta procedura jest powtarzana na zawsze.
Cel
Celem tego wyzwania kodu jest znalezienie indeksu pierwszego wystąpienia uruchomień Cw S.
Na początku jest to łatwe: Cnajpierw pojawia się przy indeksie 2, CCo 4, CCCo 7, CCCCo 26, ale CCCCCcały czas o indeksie 27308! Potem skończyła się moja pamięć.
Zwycięzcą zostanie zgłoszenie, które poprawnie generuje najwięcej uruchomionych indeksów (w kolejności, zaczynając od C). Możesz użyć dowolnego algorytmu, ale wyjaśnij go, jeśli nie używasz podstawowej brutalnej siły. Dane wejściowe i wyjściowe mogą mieć dowolny łatwy do zrozumienia format.
Ważna uwaga: oficjalnie nie wiem, czy Sfaktycznie zawiera wszystkie serie C. To pytanie pochodzi od tego z Mathematics Stack Exchange , w którym autor również nie znalazł CCCCCC. Jestem ciekawy, czy ktoś tu może. (To pytanie z kolei oparte jest na moim pierwotnym pytaniu na ten temat ).
Jeśli udowodnisz, że nie wszystkie serie Cwystępują S, wygrasz automatycznie, ponieważ to pytanie nie będzie już ważne. Jeśli nikt nie może tego udowodnić ani znaleźć, CCCCCCzwycięzcą zostanie osoba, która uzyska najwyższą dolną granicę indeksu CCCCCC(lub cokolwiek, co będzie największym nierozstrzygniętym przebiegiem, jeśli CCCCCCzostanie znaleziony).
Aktualizacja: Ogromne pochwały dla isaacga i res, którzy znaleźli CCCCCCprzy indeksie astronomicznym 2,124 * 10 ^ 519. W tym tempie nie wyobrażam sobie znalezienia CCCCCCCjakiejkolwiek metody opartej na brutalnej sile. Dobra robota chłopaki!
CCCCCprzy indeksie 27308, ale później brzmi to tak, jakbyś nie wiedział, gdzie występuje po raz pierwszy. Miałeś na myśliCCCCCC?