Załóżmy, że zaczynamy od nieskończonej listy liczb pierwszych:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, ...
Następnie kilkakrotnie bierzemy bezwzględne różnice między każdą parą liczb:
[1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6, 6, 2, 6, 4, ...
[1, 0, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 4, 4, 2, ...
[1, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 4, 0, 2, ...
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Zauważ, że wiodącym numerem jest 1 za każdym razem. Domysł Gilbreath jest przewidywaniem, że tak będzie zawsze.
Jedynym sposobem, w jaki numer wiodący przestałby być 1, jest to, że następny numer po nim nie był ani 0, ani 2. Jedynym sposobem, w jaki druga liczba nie byłaby 0 lub 2, jest to, że liczba po nim nie była ani 0 ani 2. I tak dalej.
Indeks najwcześniejszej liczby, innej niż wiodąca 1, która nie jest ani 0, ani 2, nigdy nie może spaść o więcej niż 1 między kolejną parą sekwencji. Fakt ten został wykorzystany do ustalenia bardzo silnej dolnej granicy, gdy, jeśli w ogóle, sekwencja może nie mieć 1 jako pierwszego elementu.
W tym wyzwaniu otrzymasz indeks sekwencji i musisz wypisać indeks pierwszej liczby w tej sekwencji, która nie jest wiodącą 1 i nie jest 0 ani 2.
Na przykład w czwartej sekwencji różnic bezwzględnych powyżej:
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Pierwszy wpis, który nie jest ani zerem, ani dwójką, inny niż pierwszy wpis, to 15. pozycja, indeksowana zerem 14. Więc jeśli wejście miałoby 4, wyprowadziłbyś 14.
Dla danych wejściowych od 1 do 30 dane wyjściowe powinny być:
[3, 8, 14, 14, 25, 24, 23, 22, 25, 59, 98, 97, 98, 97, 174, 176, 176, 176, 176, 291, 290, 289, 740, 874, 873, 872, 873, 872, 871, 870]
To jest OEIS A000232 .
Zakłada się, że masz 1 indeksowane dane wejściowe i 0 indeksowane dane wyjściowe. Możesz indeksować swoje wejścia i wyjścia, zaczynając od dowolnej liczby całkowitej, o ile akceptujesz zakres danych wejściowych odpowiadający wszystkim sekwencjom.
Wymagania: Twoje rozwiązanie musi działać najwyżej 1 minutę przy wejściu do 30. Jeśli jest wystarczająco blisko, że zależy od specyfikacji komputera, jest dozwolone.
Najkrótszy kod wygrywa.