Zdefiniujmy samowystarczalną liczbę jako dodatnią liczbę całkowitą, której cyfry pojawiają się w ciągach długości równych sobie. Innymi słowy, każda cyfra dziesiętna d (z wyłączeniem 0 ) występuje tylko w seriach o długości dokładnie d .
Zadanie
Możesz wybrać jedną z trzech poniższych metod:
- Biorąc pod uwagę liczbę całkowitą n , wypisz n- tą (niezależną od 0 lub 1-indeksowanej) liczbę.
- Biorąc pod uwagę liczbę całkowitą n , wypisz pierwsze n samodzielnych liczb.
- Wydrukuj sekwencję w nieskończoność.
Przykłady
133322 jest liczbą niezależną, ponieważ 3 pojawia się w szeregu trzech 3 , 1 jest pojedynczym, a 2 występuje w szeregu dwóch 2 .
Z drugiej strony 35553355 nie jest, ponieważ chociaż 5 i 3 występują odpowiednio pięć i trzy razy, nie tworzą ciągów sąsiednich cyfr.
44422 nie jest samodzielny, ponieważ 4 występuje tylko trzy razy.
12222333 też nie jest, ponieważ 2 pojawia się w szeregu czterech 2 i nie można go traktować jako dwóch oddzielnych serii dwóch 2 .
Nic dziwnego, że jest to OEIS A140057 , a jego kilka pierwszych warunków to:
1, 22, 122, 221, 333, 1221, 1333, 3331, 4444, 13331, 14444, 22122, 22333, 33322, 44441, 55555, 122122, 122333, 133322, 144441, 155555
Możesz pobierać dane wejściowe i dostarczać dane wyjściowe za pomocą dowolnej standardowej metody , w dowolnym języku programowania , zwracając uwagę, że te luki są domyślnie zabronione. To jest kod golfowy, więc wygrywa najkrótszy kod w bajtach (w każdym języku).
i
się i stanie się długie ? Może być konieczne użyciestr
(jednak nigdy nie jestem tego pewien).Mathematica, 66 bajtów
Drukuje sekwencję w nieskończoność
Wypróbuj online!
W TIO musisz zakończyć wykonywanie, aby zobaczyć wynik, ale w Mathematica działa dobrze.
-12 bajtów od Martina Endera
źródło
05AB1E , 9 bajtów
Zwraca n-ty ciąg sekwencji, indeksowany 1.
Wypróbuj online!
Wyjaśnienie
źródło
µNγD€gs€ÙQ
JavaScript (ES6),
767168 bajtówZwraca n-ty ciąg sekwencji, indeksowany 0.
Uwaga : Jak zawsze w przypadku funkcji rekurencyjnych, zakres wejściowy zależy od obsługi optymalizacji wywołania ogonowego i wielkości stosu silnika.
Próbny
Pokaż fragment kodu
Alt. wersja, 65 bajtów
Nie pobiera danych wejściowych i drukuje wyniki
alert()
pojedynczo.Wypróbuj online! (Zatrzymuje się po przekroczeniu maksymalnego rozmiaru stosu).
źródło
Galaretka , 7 bajtów
Wypróbuj online!
-4 bajty dzięki wczesnej sugestii pana Xcodera .
-1 dzięki Jonathan Allan .
Pobiera dane wejściowe ze STDIN.
źródło
CJam , 20 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Haskell , 70 bajtów
źródło
x=
zgodnie z naszymi zasadami gry w golfa .Brachylog , 10 bajtów
Wypróbuj online!
Nieskończenie generuje elementy sekwencji poprzez zmienną wejściową. (Jeśli rzeczywiście musi sam drukować, dołącz
&ẉ⊥
.) Jest to w zasadzie kod, który rozwiązuje odpowiedni problem decyzyjny, z przygotowaniem≜
do brutalnej siły najpierw najmniejszych rozwiązań:Spodziewałem się, że zajmie to tylko 9 bajtów, ale
ḅ
wydaje się, że wymaga jawnegoẹ
rozdzielenia cyfr liczby na przebiegi.źródło
JavaScript 4,
8380 bajtówźródło
Perl 6 , 49 bajtów
Wypróbuj online!
Zwraca
n
-ty element sekwencji, indeksowany od zera.źródło
\d
Może po prostu być.
R , 56 bajtów
Wypróbuj online!
Wykorzystuje kodowanie długości przebiegu dla podzielonego numeru. Zwraca true, jeśli wszystkie długości są równe wartościom.
Uwaga: Załadowałem
methods
bibliotekę do TIO, aby zabrać sięel
do pracy.źródło
Stax , 10 bajtów
Uruchom i debuguj
Ten program filtruje wszystkie dodatnie liczby całkowite za pomocą filtra. Cyfry są zakodowane na całej długości. Dla każdego przebiegu cyfra musi być równa długości cyklu.
źródło
Pyth, 12
Przetestuj online!
źródło
.fqFCr8jZT
Perl 5
-p
, 48 bajtówWypróbuj online!
Zwraca n-ty element, indeksowany 1.
źródło
Java 10, 121 bajtów
Lambda od
int
doint
. Funkcja przyjmuje indeks n i zwraca n- tą (1-indeksowaną) wartość sekwencji.Wypróbuj online
Nie golfił
źródło