Wprowadzenie
A229037 ma dość intrygującą fabułę (przynajmniej przez kilka pierwszych terminów):
Istnieje przypuszczenie, że rzeczywiście może mieć jakąś właściwość fraktalną.
Jak zbudowana jest ta sekwencja?
Określić a(1) = 1, a(2) = 1
Następnie każde n>2
znajduje się minimalną liczbą całkowitą dodatnią a(n)
, że dla każdej sekwencji arytmetycznej 3 termin n,n+k,n+2k
indeksów, odpowiadający wartości sekwencji a(n),a(n+k),a(n+2k)
jest nie arytmetyczna sekwencji.
Wyzwanie
Biorąc pod uwagę dodatnią liczbę całkowitą n
jako dane wejściowe, wypisz pierwsze n
warunki a(1), ... , a(n)
tej sekwencji. (Z dowolnym rozsądnym formatowaniem. Możliwe znaki / łańcuchy prowadzące / szkoleniowe są nieistotne.)
Dostępne są fragmenty służące do generowania tej sekwencji, ale myślę, że inne podejścia mogą być bardziej przydatne w golfie / bardziej odpowiednie dla niektórych języków.
Daj nam znać, jak działa Twój program. Jeśli spotkasz się ze szczególnie wydajnym algorytmem, możesz również o tym wspomnieć, ponieważ pozwoliłby on wykreślić więcej terminów sekwencji w krótszym czasie.
Kilka pierwszych przypadków testowych:
1, 1, 2, 1, 1, 2, 2, 4, 4, 1, 1, 2, 1, 1, 2, 2, 4, 4, 2, 4, 4, 5, 5, 8, 5, 5, 9, 1, 1, 2, 1, 1, 2, 2, 4, 4, 1, 1, 2, 1, 1, 2, 2, 4, 4, 2, 4, 4, 5, 5, 8, 5, 5, 9, 9, 4, 4, 5, 5, 10, 5, 5, 10, 2, 10, 13, 11, 10, 8, 11, 13, 10, 12, 10, 10, 12, 10, 11, 14, 20, 13
Więcej przypadków testowych:
a(100) = 4
a(500) = 5
a(1000) = 55
a(5000) = 15
a(10000) = 585
Wszystkie warunki do n=100000
są dostępne tutaj: https://oeis.org/A229037/b229037.txt
Dzięki @ MartinBüttner za pomoc i zachętę.