Oto dość trywialna sekwencja, której nie ma w internetowej encyklopedii sekwencji liczb całkowitych .
Zacznij od pustej sekwencji, a następnie zdefiniuj każdy termin jako liczbę znaków wymaganych do wypisania, w języku angielskim, wszystkich dotychczasowych cyfr sekwencji bez spacji. *
W celach informacyjnych liczba znaków wszystkich (dziesięciu podstawowych) cyfr w języku angielskim to:
zero one two three four five six seven eight nine
4 3 3 5 4 4 3 5 5 4
(Który jest początkiem zarówno A52360, jak i A5589 .)
To sprawia, że pierwszy wpis ponieważ w pustej sekwencji występuje zero cyfr.
To sprawia, że drugi wpis to ponieważ do zapisania „zero”, jedynej dotychczasowej cyfry, potrzeba czterech znaków.
To sprawia, że trzeci wpis ponieważ potrzeba czterech dodatkowych znaków, aby napisać „cztery”, w sumie osiem, aby napisać „zero”.
To sprawia, że czwarty wpis ponieważ potrzeba pięciu kolejnych znaków, aby napisać „osiem”, a w sumie trzynaście, aby napisać „zeroofoureight”.
To czyni piąty wpis ponieważ potrzeba ośmiu kolejnych znaków, aby napisać „onethree”, w sumie dwadzieścia jeden, aby napisać „zeroofoureightonethree”.
...i tak dalej. Oto pierwszych 100 wpisów:
0, 4, 8, 13, 21, 27, 35, 44, 52, 59, 67, 75, 84, 93, 102, 112, 121, 130, 142, 152, 162, 171, 182, 193, 205, 216, 225, 235, 247, 259, 270, 282, 293, 305, 318, 331, 344, 357, 371, 384, 398, 412, 422, 432, 444, 456, 467, 479, 492, 503, 516, 526, 536, 548, 561, 571, 583, 597, 610, 620, 630, 642, 652, 662, 671, 682, 693, 705, 718, 731, 744, 757, 771, 784, 798, 812, 823, 836, 849, 862, 873, 888, 903, 916, 926, 936, 948, 961, 971, 983, 997, 1010, 1024, 1038, 1055, 1070, 1086, 1101, 1114, 1127
* Możemy zdefiniować to dla innych języków i / lub innych baz lub oczywiście ze spacjami
Wyzwanie
Biorąc pod uwagę danych wyjściowych, w jak najmniejszej liczbie bajtów kodu, dowolny z:
- Pierwsze elementów sekwencji (powinno działać dla liczb całkowitych nieujemnych)
- Wartość (powinna działać dla nieujemnych liczb całkowitych)
- p określenie sekwencji (powinny działać dodatnich liczb całkowitych - czyli wartość ( n - 1 ) )
To jest golf golfowy, więc najkrótsza odpowiedź w bajtach wygrywa dla każdego języka, a najkrótsza odpowiedź w bajtach wygrywa. Nie pozwól, aby języki gry w golfa powstrzymały Cię przed wejściem w ulubiony język, zarówno praktyczny, jak i ezoteryczny!
źródło
1
powinno generować[0]
i0
powinno generować,[]
czy 2)0
powinno generować[0]
(jak w mojej poprzedniej odpowiedzi)?Odpowiedzi:
Perl 6 , 45 bajtów
Wypróbuj online!
Nie ma potrzeby modnego modulowania, gdy można bezpośrednio uzyskać nazwę cyfry! Anonimowy blok kodu, który zwraca n-tą wartość sekwencji, lub możesz przekazać w zakresie, aby uzyskać listę wartości
Wyjaśnienie:
źródło
»
jest jeden bajt, prawda? Ponadto,[+]
może być ładniejsza i wskazówkę, w jaki sposób ops binarne mogą stać reduktory alesum
także trzy bajty i zgodnie z resztą roztworu, który może nie być najkrótsza, ale na pewno jest najbardziej elegancki golf imo.»
ma dwa bajty, więc jest wymienny.say '»'.encode('latin1').bytes
wyświetla się1
. :)JavaScript (ES6),
69686158 bajtówZwracaa(n) .
Wypróbuj online!
W jaki sposób?
Cyfrad jest konwertowana na liczbę n liter za pomocą:
Ponieważ liczba jest podzielona na znaki cyfrowe, możemy przetworzyćd×100+10 po prostu dodając 10 (jako konkatenację ciągu).
źródło
Stax ,
1413 bajtówUruchom i debuguj
Kluczową kwestią jest to, że cyfra
d
wymaga((4 - 2 * d) // 3) % 3 + 3
liter do literowania. (To podział na liczbę całkowitą w pythonie i moduł nieujemny w stylu python)źródło
Pip , 21 bajtów
Wyjaśnienie
źródło
large constant to the power of pi
i byłem pod wielkim wrażeniem. (To wciąż imponujące, ale moja początkowa interpretacja była po prostu ... więcej)Wolfram Language (Mathematica) , 57 bajtów
Wypróbuj online!
Tr@StringLength@IntegerName@IntegerDigits@#&
wyświetla cyfry#
, konwertuje każdą z nich na angielską nazwę, liczy długość i sumuje wyniki. Wiele rzeczy przewija się przez listy, to bardzo ekscytujące. Następnie po prostu iteracyjnie stosujemy definicję.TIO skarży się, że nie ma połączenia z Internetem, ale nie jestem pewien, dlaczego, ponieważ i tak wymyśla właściwą odpowiedź. Może sprawdza aktualizacje nazw liczb całkowitych?
Nest
NestList
źródło
Czysty , 82 bajty
Wypróbuj online!
źródło
05AB1E ,
1514 bajtówWypróbuj online!
Wyjaśnienie
źródło
APL (Dyalog Unicode) ,
2928 bajtówWypróbuj online!
Podziękowania dla chłopaków @The APL Orchard za pomoc w tym:
@ngn dla 2 bajtów; @ H.PWiz dla
34 bajtów.Teraz używamy formuły @ recursive.
W jaki sposób:
źródło
Python 2 , 61 bajtów
Wypróbuj online!
Wykorzystuje mapowanie liczby rekurencyjnych .
Python 2 , 63 bajty
Wypróbuj online!
Wersja funkcji rekurencyjnej. Uruchomienie zajmuje wykładniczy czas, ponieważ ma dwa rekurencyjne wywołania do
f(n-1)
.źródło
+3
i ograniczyłem do operatorów arytmetycznych (bez bitów) i liczb <= 4, znalazłem to rozwiązanie, ale nic krótszego lub nawet tej samej długości, z wyjątkiem ekwiwalentów.Python 2 , 71 bajtów
Wypróbuj online!
źródło
f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or k
to ta sama liczba, ale unika tworzenia załączonej listy.MathGolf , 17 bajtów
Wypróbuj online!
To używa metody Arnaulda . Wysyła n-ty element sekwencji. Jeśli pusty ciąg znaków jest w porządku
a(0)
, możemy usunąć0\
na początku.Wyjaśnienie:
źródło
Pyth , 21 bajtów
Wypróbuj online tutaj .
źródło
najprawdopodobniej nie ma ani jednego bajtu na stronie kodowej Pytha. (Myślę, że używa UTF-8, w którym to przypadku ma 3 bajty ij7163 3
ma tę samą długość; ale tio.run mówi, że Pyth ma SBCS. Tajemniczy!)Rubinowy , 54 bajty
Wypróbuj online!
źródło
Java (JDK) , 95 bajtów
Wypróbuj online!
źródło
JavaScript (Node.js) , 82 bajty
Wypróbuj online!
źródło
Galaretka , 13 bajtów
Wypróbuj online!
0-indeksowane.
Pełny program; pobiera dane wejściowe z STDIN.
źródło
Czerwony ,
9995 bajtówWypróbuj online!
Po prostu proste rozwiązanie.
źródło
J , 37 bajtów
Wypróbuj online!
Wykorzystuje metodę Arnaulda
Wyjaśnienie:
Argumentem jest
n
źródło
Edytowane po 1 komentarzu.
Drukuje wszystkie warunki
Scala, 76 bajtów
Wypróbuj online!
Drukuje n- ty termin
Scala, 72 bajty
Scala, 69 bajtów
Scala, 67 bajtów
Scala, 67 bajtów
Wypróbuj online!
źródło
n
zdefiniowaniu). Jeśli znasz Scalę, prawdopodobnie łatwo ją naprawić. Należy również pamiętać, że w pytaniu o Scali znajdują się wskazówki dotyczące gry w golfa, które mogą pomóc. Wreszcie miło jest opublikować link do tłumacza online, TIO ma Scalę i jest używany przez wielu członków PPCG.