Mostrar secuencias OEIS


29

La Enciclopedia en línea de secuencias enteras (OEIS) es una base de datos en línea de secuencias enteras. Contiene casi 280000 secuencias de interés matemático.

Ejemplos de secuencias:

Su tarea es escribir un programa o función que muestre tantas secuencias OEIS como pueda, con un código fuente de 100 bytes como máximo. Su programa debe aceptar como entrada la secuencia de identificación (sin el pre A- pendiente y los ceros), y generar los 20 primeros números en esa secuencia.

No está permitido obtener los datos directamente desde el sitio web de OEIS; Todas las secuencias deben ser calculadas por su código.

Tanteo

El puntaje es el número de secuencias OEIS que el programa puede mostrar. Las respuestas tendrán que enumerar las ID de las secuencias reconocidas por su programa.

Ejemplo

Aquí hay una respuesta válida en Java 8:

(int a) -> {
    for (int i = 0; i < 20; i++) {
        System.out.println(a==27?i+1:i*i); 
    }
};

Este programa puede mostrar los enteros positivos (A000027 - entrada 27) y los cuadrados (A000290 - entrada 290), por lo tanto su puntaje es 2.

Nota

Evite raspar todo el sitio web de OEIS :-) puede descargar los nombres de secuencia (aproximadamente 3 megas) o los valores de secuencia (aproximadamente 9 megas). Tenga en cuenta que esta descarga está cubierta por el Acuerdo de licencia de usuario final de OEIS .


¿Podemos escribirlo para que tome los primeros 0?
TrojanByAccident

2
WHOO! ¡Un desafío en OEIS!
JungHwan Min

1
@TrojanByAccident si su idea es conectarse a OEIS, eso no está permitido en PPCG
Nathan Merrill

@NathanMerrill No estaba seguro si eso contaba en esta instancia
TrojanByAccident

¿Se permiten funciones?
xnor

Respuestas:


25

CJam ( 2182 2780 3034 secuencias)

{:ZA3#:Cb(40-z_!!:B-\+CbB)/)_mqmo:M+:NK{)[N0{N1$_*-@/M@+1$md@M@-}K*]<W%B{X0@{2$*+\}%}*ZB&=}%\C)<f*}

Esto da respuestas correctas para los rangos 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

Las A040???secuencias corresponden a las fracciones continuas de raíces cuadradas no racionales de sqrt(2)a sqrt(1000)(con los espacios correspondientes a los que aparecen anteriormente en OEIS, pero convenientemente llenos de secuencias aleatorias). Las A041???secuencias corresponden a los numeradores y denominadores de los convergentes fraccionados continuos para raíces cuadradas no racionales de sqrt(6)a sqrt(1000)(con el espacio correspondiente a sqrt(10), en A005667 and A005668). Las otras secuencias surtidas tienen ceros para sus primeros veinte valores.

La respuesta incluye elementos de dos respuestas anteriores mías en GolfScript:

Muchas gracias a xnor por la x -> x + round(sqrt(x))secuencia de mapeo de forma cerrada corta compensa el valor de sqrt. Los ahorros sobre mi cálculo anterior (generando la lista de no cuadrados y seleccionando por índice) proporcionaron suficiente para tener un respaldo de cero para la mayoría de los índices fuera de rango.


¿Sería útil que el enésimo no cuadrado esté dado por n + round(sqrt(n))?
xnor

@xnor, buena. Traté de encontrar una buena fórmula con, sqrt(n)pero no se me ocurrió redondear a la más cercana en lugar de hacia abajo. Eso da un ahorro inmediato de tres bytes, que no es suficiente para agregar una reserva, pero mantiene viva la esperanza.
Peter Taylor

35

Python 2, 875 secuencias

print', '.join('%020d'%(10**20/(input()-21004)))

Funciona para 875 de las secuencias 21016 (dígitos decimales de 1/12) a 21999 (dígitos decimales de 1/995).

Encontré este fragmento con el sofisticado algoritmo de búsqueda de escribir al azar las identificaciones de secuencia a mano. Algunas de las secuencias en el rango no son de este formato y aparecen en otro lugar (gracias a Mitchell Spector por señalar esto). Por ejemplo, 21021 no es la expansión de 1/17.

Incluso con las interrupciones, las secuencias para 1 / n aparecen como id n+21004. El resto no se desplaza, pero las secuencias que faltan aparecen en otra parte. Por ejemplo, 1/17 aparece como 7450 .

Conté los que coinciden usando una copia descargada de los nombres de secuencia.

Un bloque diferente da 848 secuencias de 16742 a 17664 .

n=input()-16729
for i in range(20):k=n/12;a=int((8*k+1)**.5/2+.5);print(a*i+k-a*(a-1)/2)**(n%12+1)

Todos estos tienen forma n -> (a*n+b)^c, donde 2≤a≤12, 0≤b<a, 1≤c≤12. El código extrae los coeficientes mediante la inversión de números triangulares y módulos. Como antes, no todas las secuencias en el rango coinciden. Si estas dos expresiones pudieran caber en 100 bytes, daría 1723 secuencias.

Trozos prometedores:

  • 1929 secuencias coincidentes: 41006 a 42397 , numeradores y denominadores de convergentes de fracción continua.
  • ~ 3300 secuencias coincidentes: 147999 a 151254 : recuentos de caminatas en Z ^ 3, si puede encontrar cómo se ordenan las listas de vectores.

Aquí hay categorías para otros fragmentos potenciales, mediante la agrupación de los nombres de secuencia OEIS eliminando todos los números (dígitos, signo menos, punto decimal). Están ordenados por número de apariciones.

3010    Number of walks within N^ (the first octant of Z^) starting at (,,) and consisting of n steps taken from {(, , ), (, , ), (, , ), (, , ), (, , )}
2302    Number of reduced words of length n in Coxeter group on  generators S_i with relations (S_i)^ = (S_i S_j)^ = I
979     Primes congruent to  mod 
969     Numerators of continued fraction convergents to sqrt()
967     Denominators of continued fraction convergents to sqrt()
966     Continued fraction for sqrt()
932     Decimal expansion of /
894     Duplicate of A
659     Partial sums of A
577     Divisors of 
517     Inverse of th cyclotomic polynomial
488     Expansion of /((x)(x)(x)(x))
480     Decimal expansion of th root of 
471     Number of nX  arrays with each element x equal to the number its horizontal and vertical neighbors equal to ,,,, for x=,,,,
455     First differences of A
448     Decimal expansion of log_ ()
380     Numbers n such that string , occurs in the base  representation of n but not of n+
378     Erroneous version of A
375     Numbers n such that string , occurs in the base  representation of n but not of n
340     Numbers n with property that in base  representation the numbers of 's and 's are  and , respectively

35 secuencias:

c=input()
for n in range(20):print[(c-1010)**n,(c-8582)*n][c>2e3]

Funciona desde 8585 (múltiplos de 3) hasta 8607 (múltiplos de 25), y 1018 (potencias de 8) hasta 1029 (potencias de 19). Convenientemente, estos son todos en un trozo ordenado por id.

Esto usa solo 65 de los 100 bytes permitidos y aún no está totalmente desarrollado, así que buscaré otra buena porción.


jaja, linda!
Maltysen

también, más corto:lambda n:range(0,(n-8582)*20,n-8582)
Maltysen

@Maltysen Spec dijo el programa, así que seguí con eso. Preguntare.
xnor

2
Buena idea, pero no creo que el rango 21016-21999 consista enteramente en recíprocos. Por ejemplo, A21021 es 1, 33, 727, 13365, 221431, 3428733, ..., no los dígitos decimales de 1/17. No he comprobado qué secuencias son recíprocas y cuáles no.
Mitchell Spector

1
@xnor Independientemente de la cantidad de coincidencias que obtenga, puede combinarlo con mi respuesta para agregar otros 252 a la cuenta: si la entrada no está en el rango 21016-21999, salida 20 0's. (Ninguna de mis 252 secuencias se encuentra en ese rango.)
Mitchell Spector

29

Bash + coreutils, 252 secuencias

yes 0|head -20

Pruébalo en línea!

A10.Aq.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, A0345, A0345, A0345, A0345, A0345, A0345, A0345, A0345, A034, A034, A03445, A03445, A03445, A03445, A03445, A03450, A034503, A034503, A034504, A034505, A034506, A034507, A034508, A034509, A034510, A0345, A0345, A0345, A0345, A0345, A034, 45A034518, 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, 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,A1118A, A122180, A129947, A12947, A1875, A189, A1875, A1875, A189, A12947, A12947, A12947, A1875, A1812, A1812, A1812, A1817, A1817, A1817, A1817, A1817, A1817, A1875, A1812, A1812, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1812, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1712, A1812, A1717 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, 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, 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, A243831, A243832, A243833, A243834, A243835, A243836, A248805, A250002, A256974, A260502, A264668, A276183, A277165, A280492, A280815


44
Je, linda idea!
Jonathan Allan

12

Python (con sympy), 144 146 secuencias

import sympy
f=lambda a,M=16627:[int(c)for c in str(sympy.log((a<M)*46.5+4+a-M).n(20))if'.'<c][-20:]

La función ffunciona para las 146 secuencias A016578 a A016723 inclusive.

Todos estos son emitidos por el instrumento de prueba en repl.it .

Las 49 secuencias A016578 a A016626 inclusive son las expansiones decimales de log (3/2), log (5/2), log (7/2), ..., log (99/2).

Las 97 secuencias A016627 a A016723 inclusive son las expansiones decimales de log (4), log (5), log (6), ..., log (100).

Los primeros dos de los 49 comienzan en el primer lugar decimal ya que los valores de registro para ellos son menores que 1 , por lo que [-20:]toma los 20 lugares decimales finales del resultado de la llamada a la ...n(20)que se obtienen 20 cifras significativas. Los if'.'<cfiltros de manifiesto el carácter decimal, y los int(c)moldes de cada personaje restante dígitos a un número entero (aunque quizás no es necesario).


10

Jalea, 1127 secuencias de 1975

- esto combina actualmente los hallazgos de xnor y Mitchell Spector , pero aún tiene espacio para crecer en 78 bytes. ¡Ve y dales un poco de crédito!

0x20
_21004µȷ20:DU¢oU
20Ḷ×⁸+µ*þ12
11R‘µẋ`€F$ç"Ḷ€F$;/
_108ị¢

“æÑØ‘×ȷ3¤>J×$S‘µĿ

TryItOnline!

Las secuencias de 1975 son:

  • los 252 que comienzan con veinte ceros (el comportamiento para la entrada fuera de [16000,21999]);
  • las 848 secuencias que se encuentran en el rango de 16742 a 17664 que coinciden con la (a*n+b)**cfórmula (el comportamiento para la entrada [16000,17999]); y
  • las 875 secuencias que se encuentran en el rango de 21016 a 21999 que coinciden con la expansión decimal de 1/n(el comportamiento para la entrada [18000,21999]).

¿Cómo?

0x20 - Link 1, TwentyZeros: no arguments
0    - zero
  20 - twenty
 x   - repeat

_21004µȷ20:DU¢oU - Link 2, DecimalExpansionOfReciprocal: oeisIndexNumber
      µ          - monadic chain separation
       ȷ20       - 1e20
_21004           - subtract 21004 from oeisNumber to get the n value
          :      - integer division, i.e. 1e20 // n
           D     - decimal list
            U    - reverse
             ¢   - call last link (1) as a nilad, i.e. get twenty zeros
              o  - logical or, i.e. pad the right of the reversed list to twenty with zeros
               U - reverse again

20Ḷ×⁸+µ*þ12 - Link 3, BlockOf12abcFormulaResults: a, b
20Ḷ         - lowered range of 20 [0,1,...,19] i.e. the values of n in (a*n+b)**c
    ⁸       - left argument, a
   ×        - multiply
     +      - add b
      µ     - monadic chain separation
        þ12 - outer product with [1,2,...,12] of... i.e. the values of c in (a*n+b)**c
       *    -     exponentiation

11R‘µẋ`€F$ç"Ḷ€F$;/ - link 4, AllabcFormulaResults: no aguments
11R                - range of 11 [1,2,...,11]
   ‘               - increment   [2,3,...12] i.e. the values of a in (a*n+b)**c
    µ              - monadic chain separation
         $         - last two links as a monad
     ẋ`€           - repeat list with repeated arguments for €ach [[2,2],[3,3,3],...,[12,12,12,12,12,12,12,12,12,12,12,12]]
        F          - flatten into one list
               $   - last two links as a monad
            Ḷ€     - lowered range of €ach [[0,1],[0,1,2],...,[0,1,2,3,4,5,6,7,8,9,10,11]]
              F    - flatten into one list
          ç"       - zip with (") last link (3) as a dydad (ç) i.e. get all the results
                 / - reduce with
                ;  - concatenation i.e. make the list of lists of lists one list of lists.

_108ị¢ - Link 5, abcFormulaResult: oeisIndexNumber
_108   - subtract 108 from the oeisNumber (indexes in Jelly are modular and there are 924 entries, this is shorter than _16740)
     ¢ - call last link (4) as a nilad
    ị  - index into i.e. get the one relevant result of 20 terms

 - Link 6, an empty link (cheaper in bytes than the %6 alternative in the main link)

“æÑØ‘×ȷ3¤>J×$S‘µĿ - Main link: oeisIndexNumber           e.g. 1-15999; 16000-17999; 18000-21999; 22000+
        ¤         - nilad followed by link(s) as a nilad
“æÑØ‘             - codePage indexes [22,16,18]
      ȷ3          - 1e3
     ×            - multiply [22000,16000,18000]
         >        - greater than (vectorises)            e.g. [1,1,1]; [1,0,1];     [1,0,0];     [0,0,0]
            $     - last two links as a monad
          J       - range(length) [1,2,3]
           ×      - multiply                             e.g. [1,2,3]; [1,0,3];     [1,0,0];     [0,0,0]
             S    - sum                                  e.g. 6;       4;           1;           0
              ‘   - increment                            e.g. 7;       5;           2;           1
               µ  - monadic chain separation
                Ŀ - call link(index) as a monad with the oeisIndexNumber
                        link indexing is 1-based and modular so 7 calls link 1
              ><        hence the empty link 6 replacing a %6 here

8

Mathematica, 39 173 189 secuencias

If[l=0~Range~19;#<4^7,l,If[#<3^9,#&@@RealDigits[Log[j=16627;#-j+If[#<j,49.5,4]],10,20],#-22956-l]]&

Inspirado por la respuesta de Jonathan Allan .

Trabaja para:

  • 1477 , 2837 , 4830 y 8554 (los primeros 20 términos de estos son {0, 1, 2, ... , 19})
  • 16578 a 16626 (expansión decimal de log (3/2), expansión decimal de log (5/2), ... expansión decimal de log (99/2))
  • 16627 a 16723 (expansión decimal de log (4), expansión decimal de log (5), ... expansión decimal de log (100))
  • 22958 a 22996 (2-n, 3-n, ... 40-n)

6

CJam, 1831 secuencias

{168680-:Zz1320b900b48md:R;H+:QB+2*,:!1_tQWtQ)WtK{[WQW*_(]+1$f=[1R2+R~R4+*2/WR-X$-].*1b+}/J~>ZW>f*}

Esto da salida correcta para 199 secuencias que comienzan 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0y todas las secuencias en los intervalos inclusivos [A168680, A169579]y [A170000, A170731]. La mayor parte se ocupa de esos dos rangos, con un retroceso para todos los ceros antes del comienzo del primer rango.

Los dos rangos en cuestión tienen la forma

Número de palabras reducidas de longitud norte en el grupo Coxeter en PAGS generadores Syo con relaciones (Syo)2=(SyoSj)Q=yo

para valores de PAGS que van desde 3 a 50 y valores de Q que van desde 17 a 50. Sus funciones generadoras se dan de una manera completamente ineficiente: me pareció útil multiplicar numeradores y denominadores por(t-1) dar gf

tQ+1+tQ-t-112(PAGS-2)(PAGS-1)tQ+1-12(PAGS-2)(PAGS+1)tQ+(PAGS-1)t-1
aunque para fines de golf estoy trabajando con R=PAGS+3.

1

Lote, 62 secuencias

@for /l %%i in (1,1,20)do @set/a"n=(n=22956-%1)*(n>>=16)+%%i*(n|%1-8582)"&call echo %%n%%

Solo implementar un bloque de secuencias fue difícil, ¡pero logré dos en 89 bytes! Explicación: Para un parámetro %1de 8585-8607, 22956-%1>>16devuelve cero, haciendo que la (22956-%1)expresión se ignore y terminamos multiplicando la variable del bucle por 3-25 respectivamente, mientras que para un parámetro de 22958-22996 devuelve menos uno, lo que hace que la expresión sea negado, mientras que n|hace que el factor de multiplicación se reemplace con menos uno restando efectivamente la variable de bucle.


1
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.