On-Line Encyclopedia of Integer Sequences (OEIS) to elektroniczna baza danych sekwencji całkowitych. Zawiera prawie 280000 sekwencji matematycznych.
Przykłady sekwencji:
Twoim zadaniem jest napisanie programu lub funkcji, która wyświetli tyle sekwencji OEIS, ile możesz, z kodem źródłowym maksymalnie 100 bajtów . Twój program powinien zaakceptować jako dane wejściowe identyfikator sekwencji (bez poprzedzającego A
i zer) i wypisać 20 pierwszych liczb w tej sekwencji.
Nie wolno pobierać danych bezpośrednio ze strony internetowej OEIS; wszystkie sekwencje muszą być obliczone przez twój kod.
Punktacja
Wynik to liczba sekwencji OEIS, które program może wyświetlić. Odpowiedzi będą musiały zawierać identyfikatory sekwencji rozpoznawanych przez ich program.
Przykład
Oto poprawna odpowiedź w Javie 8:
(int a) -> {
for (int i = 0; i < 20; i++) {
System.out.println(a==27?i+1:i*i);
}
};
Ten program może wyświetlać dodatnie liczby całkowite (A000027 - wejście 27) i kwadraty (A000290 - wejście 290), więc jego wynik to 2.
Uwaga
Unikaj skrobania całej witryny OEIS :-) możesz pobrać nazwy sekwencji (około 3 megapikseli) lub wartości sekwencji (około 9 megapikseli). Pamiętaj, że to pobieranie jest objęte umową licencyjną użytkownika końcowego OEIS .
Odpowiedzi:
CJam (
2182 27803034 sekwencji)To daje poprawne odpowiedzi dla obejmujących zakresów
[A040000, A040003]
,[A040005, A040008]
,[A040011, A040013]
,A040015
,[A040019, A040022]
,A040024
,[A040029, A040033]
,A040035
,A040037
,[A040041, A040043]
,A040048
,A040052
,[A040055, A040057]
,A040059
,A040063
,[A040071, A040074]
,A040077
,A040080
,[A040090, A040091]
,[A040093, A040094]
,A040097
,A040099
,[A040109, A040111]
,A040118
,A040120
,[A040131, A040135]
,A040137
,A040139
,[A040142, A040143]
,A040151
,[A040155, A040157]
,A040166
,A040168
,[A040181, A040183]
,[A040185, A040968]
[A041006, A041011]
,[A041014, A042937]
A006983
,[A011734, A011745]
,[A023975, A023976]
,[A025438, A025439]
,[A025443, A025444]
,A025466
,A025469
,[A034422, A034423]
,A034427
,A034429
,A034432
,A034435
,[A034437, A034439]
,A034441
,A034443
,A034445
,A034447
,[A034449, A034459]
,[A034461, A034462]
,[A034464, A034469]
,A034471
,A034473
,[A034475, A034477]
,[A034479, A034487]
,[A034489, A034490]
,[A034492, A034493]
,A034495
,[A034497, A034512]
,[A034514, A034516]
,[A034518, A034523]
,[A034525, A034582]
,A036861
,A047752
,A052375
,A055967
,A061858
,A065687
,A066035
,A067159
,A067168
,A070097
,A070202
,A070204
,[A070205, A070206]
,A072325
,A072769
,A076142
,A082998
,A083344
,A085974
,A085982
,A086007
,A086015
,A089458
,A093392
,A094382
,A105517
,A108322
,A111855
,A111859
,[A111898, A111899]
,A112802
,A122180
,A129947
,A137579
,A159708
,[A161277, A161280]
,A165766
,A167263
,A178780
,A178798
,A180472
,A180601
,A181340
,A181735
,A184946
,A185037
,A185203
,[A185237, A185238]
,[A185245, A185246]
,A185255
,A185264
,A185284
,A191928
,A192541
,A197629
,A198255
,A200214
,A206499
,A210632
,A212619
,[A217148, A217149]
,A217151
,[A217155, A217156]
,A228953
,A230533
,A230686
,A235044
,A235358
,A236265
,A236417
,A236460
,A238403
,[A243831, A243836]
,A248805
,A250002
,A256974
,A260502
,A264668
,A276183
,A277165
,A280492
,A280815
Te
A040???
sekwencje odpowiadały ułamków nie-racjonalne kwadratowych z korzenisqrt(2)
dosqrt(1000)
(ze szczelin odpowiadających te, które znajdują się wcześniej w OEIS, lecz korzystnie wypełnione losowych sekwencji). TeA041???
sekwencje odpowiadały liczników i mianownik do ułamka convergents odmowy racjonalnych kwadratowych z korzenisqrt(6)
dosqrt(1000)
(ze szczeliną odpowiadającąsqrt(10)
, naA005667 and A005668
). Pozostałe wybrane sekwencje mają zera dla pierwszych dwudziestu wartości.Odpowiedź zawiera elementy dwóch moich wcześniejszych odpowiedzi w GolfScript:
Ogromne podziękowania dla xnor za krótkie
x -> x + round(sqrt(x))
przesunięcia sekwencji mapowania zamkniętych formularzy do wartości sqrt. Oszczędności w porównaniu z moimi poprzednimi obliczeniami (generowanie listy nie kwadratów i wybieranie według indeksu) dostarczyły wystarczająco dużo, aby uzyskać zerowy rezerwowy wynik dla większości wskaźników spoza zakresu.źródło
n + round(sqrt(n))
?sqrt(n)
ale nie przyszło mi do głowy, aby zaokrąglić do najbliższego, a nie w dół. Daje to natychmiastową oszczędność trzech bajtów, co nie wystarczy, aby dodać awarię, ale utrzymuje nadzieję przy życiu.Python 2, 875 sekwencji
Działa dla 875 sekwencji 21016 (cyfry dziesiętne 1/12) do 21999 (cyfry dziesiętne 1/995).
Znalazłem ten fragment dzięki wyrafinowanemu algorytmowi wyszukiwania polegającemu na przypadkowym wpisywaniu identyfikatorów sekwencji ręcznie. Niektóre sekwencje z tego zakresu nie są w tym formacie i pojawiają się gdzie indziej (dzięki Mitchell Spector za zwrócenie na to uwagi). Na przykład 21021 nie jest rozszerzeniem 1/17.
Nawet przy przerwach sekwencje dla 1 / n pojawiają się jako id
n+21004
. Reszta nie jest przesunięta, ale brakujące sekwencje pojawiają się gdzie indziej. Na przykład 1/17 pojawia się jako 7450 .Policzyłem te, które pasują, używając pobranej kopii nazw sekwencji.
Inny blok daje 848 sekwencji od 16742 do 17664 .
Wszystkie mają formę
n -> (a*n+b)^c
, gdzie2≤a≤12, 0≤b<a, 1≤c≤12
. Kod wyodrębnia współczynniki poprzez odwrócenie liczb i modułów trójkątnych. Jak poprzednio, nie wszystkie sekwencje w zakresie są zgodne. Jeśli te dwa wyrażenia mogłyby zmieścić się w 100 bajtach, dałoby to 1723 sekwencje.Obiecujące fragmenty:
Oto kategorie dla innych potencjalnych fragmentów, grupując nazwy sekwencji OEIS, usuwając wszystkie liczby (cyfry, znak minus, przecinek dziesiętny). Są one sortowane według liczby wystąpień.
35 sekwencji:
Działa od 8585 (wielokrotności 3) do 8607 (wielokrotności 25) i od 1018 (potęgi 8) do 1029 (potęgi 19). Dogodnie są one wszystkie w jednym kawałku uporządkowanym według identyfikatora.
Używa tylko 65 ze 100 dozwolonych bajtów i nie jest jeszcze w pełni golfa, więc szukam innej fajnej porcji.
źródło
lambda n:range(0,(n-8582)*20,n-8582)
Bash + coreutils, 252 sekwencje
Wypróbuj online!
Działa na 252 sekwencjach OEIS: A000004, A006983, A011734, A011735, A011736, A011737, A011738, A011739, A011740, A011741, A011742, A011743, A011744, A011745, A03925, A0114, A A034422, A034423, A034427, A034429, A034432, A034435, A034437, A034438, A034439, A034441, A034443, A034445, A034447, A034449, A034450, A034451, A034452, A034453, A034454, A034455, A034456, A034457, A034458, A034459, A034461, A034462, A034464, A034465, A034466, A034467, A034468, A034469, A034471, A034473, A034475, A034476, A034477, A034479, A034480, A034481, A034482, A034483, A034484, A034485, A034486, A034487, A034489, A034490, A034492, A034493, A034495, A034497, A034498, A034499, A034500, A034501, A034502, A034503, A034504, A034505, A034506, A034507, A034508, A034509, A034510, A03451145, A04512A034518, A034519, A034520, A034521, A034522, A034523, A034525, A034526, A034527, A034528, A034529, A034530, A034531, A034532, A034533, A034534, A034535, A034536, A03454537, A034545, A034534 A034544, A034545, A034546, A034547, A034548, A034549, A034550, A034551, A034552, A034553, A034554, A034555, A034556, A034557, A034558, A034559, A034560, A034561, A034553 A03 A034569, A034570, A034571, A034572, A034573, A034574, A034575, A034576, A034577, A034578, A034579, A034580, A034581, A034582, A036861, A047752, A052375, A055967, A0156, A066 A070204, A070205, A070206, A072325, A072769, A076142, A082998, A083344, A085974, A085982, A086007, A086015, A089458, A093392, A094382, A105517, A118855, A118855, A118855,A111899, A112802, A122180, A129947, A137579, A159708, A161277, A161278, A161279, A161280, A165766, A167263, A178780, A178798, A180472, A180601, A181340, A181785, A11885, A150 A185255, A185264, A185284, A191928, A192541, A197629, A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230636, A230636, A2 A243831, A243832, A243833, A243834, A243835, A243836, A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230686, A235044, A235358, A236265, A236417, A236460, A2383824, A3882424, A3838403 A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A230533, A230686, A235044, A235358, A236265, A236417, A236460, A2383824, A3882424, A3838403 A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815
źródło
Python (z sympią),
144146 sekwencjiFunkcja
f
działa dla 146 sekwencji od A016578 do A016723 włącznie.Wszystkie one są wyprowadzane przez uprzęży testu na repl.it .
Do 49 sekwencje A016578 przez A016626 włącznie są ekspansje dziesiętne log (3/2), log (5/2), log (7/2), ..., log (99/2).
W 97 sekwencja A016627 przez A016723 włącznie są ekspansja dziesiętne log (4), log (5), log (6), ..., log (100).
Pierwsze dwa z 49 rozpoczynają się od pierwszego miejsca po przecinku, ponieważ dla nich wartości dziennika są mniejsze niż 1 , więc
[-20:]
przyjmuje końcowe 20 miejsc po przecinku wyniku połączenia, do...n(20)
którego otrzymuje 20 cyfr znaczących. Wif'.'<c
odfiltrowuje charakteru miejsca po przecinku iint(c)
odlewy każdy pozostały cyfra znaków na liczbę całkowitą (choć być może nie jest to konieczne).źródło
Galaretka,
1127sekwencji 1975- obecnie łączy to wyniki Xnora i Mitchella Spectora , ale wciąż ma miejsce na wzrost przy 78 bajtach. Idź, daj im trochę uznania!
TryItOnline!
Sekwencje z 1975 r .:
[16000,21999]
);(a*n+b)**c
formuły (zachowanie wejścia[16000,17999]
); i1/n
(zachowanie wejścia[18000,21999]
).W jaki sposób?
źródło
Mathematica,
39173189 sekwencjiZainspirowany odpowiedzią Jonathana Allana .
Pracuje dla:
{0, 1, 2, ... , 19}
)źródło
CJam, 1831 sekwencji
Daje to prawidłową moc wyjściową dla 199 sekwencji rozpoczynających się
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
i wszystkich sekwencji w przedziałach włączających[A168680, A169579]
i[A170000, A170731]
. Większość z nich dotyczy tych dwóch zakresów, z rezerwą dla zer zerowych przed rozpoczęciem pierwszego zakresu.Te dwa zakresy mają formę
dla wartościP. od 3) do 50 i wartości Q od 17 do 50 . Ich funkcje generujące są podane w całkowicie nieefektywny sposób: uznałem za użyteczne pomnożyć liczniki i mianowniki przez( t - 1 ) dać gf
źródło
Partia, 62 sekwencje
Samo wdrożenie jednego bloku sekwencji było trudne, ale udało mi się dwa na 89 bajtów! Objaśnienie: Dla parametru
%1
8585-860722956-%1>>16
zwraca zero, co powoduje(22956-%1)
zignorowanie wyrażenia, a następnie mnożymy zmienną pętli odpowiednio przez 3-25, natomiast dla parametru 22958-22996 zwraca minus jeden, powodując, że wyrażenie jest negowane, podczas gdyn|
powoduje, że mnożnik zostaje zastąpiony przez minus jeden, skutecznie odejmując zmienną pętli.źródło
PHP , 28 bajtów, 33 Sekwencje, które zakładam
Wypróbuj online!
https://oeis.org/A000004 0 https://oeis.org/A007395 2 https://oeis.org/A010701 3 https://oeis.org/A010709 4 https://oeis.org/A010716 5 https://oeis.org/A010722 6 https://oeis.org/A010727 7 https://oeis.org/A010731 8 https://oeis.org/A010734 9 https://oeis.org/A010692 10 https://oeis.org/A010850 11 https://oeis.org/A010851 12 https://oeis.org/A010852 13 https://oeis.org/A010854 15 https://oeis.org/A010855 16 https://oeis.org/A010857 18 https://oeis.org/A010859 20 https://oeis.org/A010861 22 https://oeis.org/A010863 24 https://oeis.org/A010871 32
źródło