Definicja
Nazwijmy (nieskończoną) sekwencję całkowitą uniwersalną, jeśli zawiera ona każdą skończoną sekwencję całkowitą jako ciągłą podsekwencję.
Innymi słowy, sekwencja liczb całkowitych (a 1 , a 2 ,…) jest uniwersalna wtedy i tylko wtedy, gdy dla każdej skończonej sekwencji liczb całkowitych (b 1 ,…, b n ) istnieje przesunięcie k takie, że (a k + 1 ,…, A k + n ) = (b 1 ,…, b n ) .
Na przykład sekwencja dodatnich liczb pierwszych nie jest uniwersalna, między innymi z następujących powodów.
Nie zawiera ujemnych liczb całkowitych, 1 ani liczb zespolonych.
Chociaż zawiera 3 , nie zawiera ciągłej podsekwencji (3, 3, 3) .
Chociaż zawiera 2 i 5 , nie zawiera ciągłych podsekwencji (2, 5) .
Chociaż zawiera ciągłe podsekwencje (7, 11, 13) , nie zawiera ciągłych podsekwencji (13, 11, 7) .
Zadanie
Wybierz dowolną uniwersalną sekwencję liczb całkowitych (a 1 , 2 ,…) i zaimplementuj ją w wybranym przez siebie języku programowania, przestrzegając następujących zasad.
Możesz przesłać pełny program lub funkcję.
Masz trzy opcje wejścia / wyjścia:
Nie wprowadzaj danych i wydrukuj lub zwróć całą sekwencję.
Weź indeksu n jako wejście i wydrukować lub powrócić do n .
Weź indeks n jako dane wejściowe i wydrukuj lub zwróć (a 1 ,…, a n ) .
W przypadku opcji We / Wy 2 i 3 możesz użyć indeksowania opartego na 0 , jeśli wolisz.
Twoje przesłanie musi być deterministyczne: jeśli zostanie uruchomione wiele razy z tymi samymi danymi wejściowymi, musi dawać takie same wyniki.
Ponadto, o ile nie jest to od razu oczywiste, udowodnij, że wybrana sekwencja jest uniwersalna. Twój dowód może nie zależeć od niesprawdzonych przypuszczeń.
Obowiązują standardowe zasady gry w golfa . Niech wygra najkrótszy kod w bajtach!