A Enciclopédia On-Line de Sequências Inteiras (OEIS) é um banco de dados on-line de seqüências inteiras. Ele contém quase 280000 seqüências de interesse matemático.
Exemplos de sequências:
Sua tarefa é escrever um programa ou função que exiba o máximo de seqüências OEIS possível, com um código-fonte de no máximo 100 bytes . Seu programa deve aceitar como entrada o ID da sequência (sem os prefixos A
e os zeros) e gerar os 20 primeiros números nessa sequência.
Você não tem permissão para buscar os dados diretamente no site da OEIS; todas as sequências devem ser calculadas pelo seu código.
Pontuação
Score é o número de sequências OEIS que o programa pode exibir. As respostas terão que listar os IDs das sequências reconhecidas por seus programas.
Exemplo
Aqui está uma resposta válida no Java 8:
(int a) -> {
for (int i = 0; i < 20; i++) {
System.out.println(a==27?i+1:i*i);
}
};
Este programa pode exibir os números inteiros positivos (A000027 - entrada 27) e os quadrados (A000290 - entrada 290), portanto, sua pontuação é 2.
Nota
Evite raspar o site inteiro da OEIS :-) você pode fazer o download dos nomes de sequência (cerca de 3 megas) ou valores da sequência (cerca de 9 megas). Observe que este download é coberto pelo Contrato de licença do usuário final da OEIS .
Respostas:
CJam (
2182 27803034 sequências)Isso fornece respostas corretas para os intervalos inclusivos
[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
As
A040???
seqüências correspondem às frações contínuas de raízes quadradas não racionais desqrt(2)
atésqrt(1000)
(com as lacunas correspondentes àquelas que aparecem anteriormente no OEIS, mas convenientemente preenchidas com sequências aleatórias). AsA041???
seqüências correspondem aos numeradores e denominadores da fração contínua convergente para raízes quadradas não racionais desqrt(6)
atésqrt(1000)
(com a diferença correspondente asqrt(10)
, emA005667 and A005668
). As outras seqüências sortidas têm zeros para seus primeiros vinte valores.A resposta contém elementos de duas respostas anteriores no GolfScript:
Muito obrigado ao xnor pela
x -> x + round(sqrt(x))
sequência curta de mapeamento de formulário fechado que compensa o valor para sqrt. A economia em relação ao meu cálculo anterior (gerando a lista de não quadrados e selecionando pelo índice) forneceu o suficiente para ter um retorno zero para a maioria dos índices fora da faixa.fonte
n + round(sqrt(n))
?sqrt(n)
mas não me ocorreu arredondar para o mais próximo do que para baixo. Isso proporciona uma economia imediata de três bytes, o que não é suficiente para adicionar um retorno, mas mantém a esperança viva.Sequências Python 2, 875
Funciona para 875 das seqüências 21016 (dígitos decimais de 1/12) a 21999 (dígitos decimais de 1/995).
Encontrei esse pedaço com o sofisticado algoritmo de pesquisa de digitar aleatoriamente manualmente os IDs de sequência. Algumas das seqüências no intervalo não são desse formato e aparecem em outros lugares (obrigado a Mitchell Spector por apontar isso). Por exemplo, 21021 não é a expansão de 1/17.
Mesmo com as interrupções, as seqüências para 1 / n aparecem como id
n+21004
. O restante não é alterado, mas as seqüências ausentes aparecem em outro lugar. Por exemplo, 1/17 aparece como 7450 .Contei os que correspondem usando uma cópia baixada dos nomes das sequências.
Um bloco diferente fornece 848 sequências de 16742 a 17664 .
Estes todos têm forma
n -> (a*n+b)^c
, onde2≤a≤12, 0≤b<a, 1≤c≤12
. O código extrai os coeficientes através da inversão de números e módulos triangulares. Como antes, nem todas as seqüências no jogo gama. Se essas duas expressões pudessem caber em 100 bytes, daria 1723 seqüências.Prometendo pedaços:
Aqui estão categorias para outros blocos potenciais, agrupando os nomes de sequência OEIS removendo todos os números (dígitos, sinal de menos, ponto decimal). Eles são classificadas pelo número de ocorrências.
35 sequências:
Trabalha de 8585 (múltiplos de 3) a 8607 (múltiplos de 25) e 1018 (potências de 8) a 1029 (potências de 19). Convenientemente, estes são todos em um pedaço ordenado por ID.
Ele usa apenas 65 dos 100 bytes permitidos e ainda não está totalmente disponível, então procurarei outro bom pedaço.
fonte
lambda n:range(0,(n-8582)*20,n-8582)
Bash + coreutils, 252 sequências
Experimente online!
Funciona em 252 sequências OEIS: A000004, A006983, A011734, A011735, A011736, A011737, A011738, A011739, A011740, A011741, A011742, A011743, A011744, A011745, A023975 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, A034511, A034511A034518, A034519, A034520, A034521, A034522, A034523, A034525, A034526, A034527, A034528, A034529, A034530, A034531, A034532, A034533, A034534, A034535, A034536, A034537, A034538, A034539, A034540, A034541, A034542, A034543, A034544, A034545, A034546, A034547, A034548, A034549, A034550, A034551, A034552, A034553, A034554, A034555, A034556, A034557, A034558, A034559, A034560, A034561, A034562, A034563, A034564, A034565, A034566, A034567, A034568, A034569, A034570, A034571, A034572, A034573, A034574, A034575, A034576, A034577, A034578, A034579, A034580, A034581, A034582, A036861, A047752 A070204, A070205, A070206, A072325, A072769, A076142, A082998, A083344, A085974, A085982, A086007, A086015, A089458, A093392, A094382, A105517, A108322, A1194382A111899, A112802, A122180, A129947, A137579, A159708, A161277, A161278, A161279, A161280, A165766, A167263, A178780, A178798, A180472, A180601, A181340, A181735, A1849 A185255, A185264, A185284, A191928, A192541, A197629, A198255, A200214, A206499, A210632, A212619, A217148, A217149, A217151, A217155, A217156, A228953, A235523, A2301535 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, A238403, A238403 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, A238403, A238403 A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815
fonte
Python (com sympy),
144146 sequênciasA função
f
funciona para as 146 seqüências A016578 a A016723, inclusive.Todos estes são emitidos pelo equipamento de teste em repl.it .
As 49 sequências A016578 a A016626 inclusive são as expansões decimais de log (3/2), log (5/2), log (7/2), ..., log (99/2).
As 97 sequências A016627 a A016723 inclusive são as expansões decimais de log (4), log (5), log (6), ..., log (100).
As duas primeiras das 49 começam na primeira casa decimal, uma vez que os valores de log para elas são menores que 1 , portanto,
[-20:]
leva as 20 casas decimais à direita do resultado da chamada na...n(20)
qual obtém 20 números significativos. Osif'.'<c
filtros fora o caráter casa decimal, e osint(c)
moldes cada personagem restantes dígitos para um inteiro (embora talvez não seja necessário).fonte
Jelly,
1127sequências de 1975- atualmente, isso combina as descobertas de xnor e Mitchell Spector , mas ainda há espaço para crescimento em 78 bytes. Vá dar-lhes algum crédito!
TryItOnline!
As sequências de 1975 são:
[16000,21999]
);(a*n+b)**c
fórmula (o comportamento de entrada[16000,17999]
); e1/n
(o comportamento para entrada[18000,21999]
).Quão?
fonte
Mathematica,
39173189 sequênciasInspirado pela resposta de Jonathan Allan .
Trabalha para:
{0, 1, 2, ... , 19}
)fonte
CJam, sequências 1831
Isso fornece a saída correta para o início de 199 seqüências
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
e todas as seqüências nos intervalos[A168680, A169579]
e inclusivos[A170000, A170731]
. A maior parte trata desses dois intervalos, com um fallback para todos os zeros antes do início do primeiro intervalo.Os dois intervalos em questão têm a forma
para valores deP variando de 3 para 50. e valores de Q variando de 17 para 50. . Suas funções geradoras são dadas de maneira totalmente ineficiente: achei útil multiplicar numeradores e denominadores por( t - 1 ) dar gf
fonte
Lote, 62 sequências
Apenas implementar um bloco de seqüências foi difícil, mas consegui dois em 89 bytes! Explicação: Para um parâmetro
%1
de 8585-8607,22956-%1>>16
retorna zero, fazendo com que a(22956-%1)
expressão seja ignorada e acabamos multiplicando a variável de loop por 3-25 respectivamente, enquanto que para um parâmetro de 22958-22996, ele retorna menos um fazendo com que a expressão seja negado, enquanto isson|
faz com que o fator de multiplicação seja substituído por menos um subtraindo efetivamente a variável do loop.fonte
PHP , 28 bytes, 33 Sequências que eu assumo
Experimente 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
fonte