A partir del 13/03/2018 16:45 UTC, el ganador es la respuesta # 345 , de Scrooble . Esto significa que el concurso ha terminado oficialmente, pero siéntase libre de seguir publicando respuestas, siempre y cuando sigan las reglas.
Además, solo un rápido saludo a los tres principales respondedores en términos de números de respuestas:
1. NieDzejkob - 41 respuestas
2. KSmarts - 30 respuestas
3. Hyper Neutrino - 26 respuestas
Esta es una pregunta de encadenamiento de respuestas que utiliza secuencias de OEIS y la duración de la presentación anterior.
Esta pregunta de encadenamiento de respuestas funcionará de la siguiente manera:
- Publicaré la primera respuesta. Todas las demás soluciones deben provenir de eso.
- El siguiente usuario (llamémosles usuario A) encontrará la secuencia OEIS en la que su número de índice (ver más abajo) es el mismo que la longitud de mi código.
- Usando la secuencia, deben codificar, en un lenguaje no utilizado , un programa que toma un número entero como entrada, n, y genera el enésimo número en esa secuencia.
- Luego, publican su solución después de la mía, y un nuevo usuario (usuarioB) debe repetir lo mismo.
El n
término th de una secuencia es el término n veces después del primero, trabajando con el primer valor como el primer valor dado en su página OEIS. En esta pregunta, utilizaremos la indexación 0 para estas secuencias. Por ejemplo, con A000242 y n = 3
, el resultado correcto sería 25 .
¡Sin embargo!
Este no es un código de golf , por lo que el código más corto no importa. Pero la longitud de su código todavía tiene un impacto. Para evitar la duplicación de secuencias, su bytecount debe ser único . Esto significa que ningún otro programa enviado aquí puede tener la misma longitud en bytes que el suyo.
Si no hay una secuencia para la duración de la última publicación, entonces la secuencia de su publicación es la secuencia más baja no utilizada. Esto significa que las secuencias utilizadas también tienen que ser únicas, y que la secuencia no puede ser la misma que su bytecount.
Después de que se haya publicado una respuesta y no se hayan publicado nuevas respuestas durante más de una semana, la respuesta anterior a la última publicada (la que no rompió la cadena) ganará.
Entrada y salida
Se aplican reglas genéricas de entrada y salida. La entrada debe ser un entero o una representación de cadena de un entero y la salida debe ser el valor correcto en la secuencia.
Formateo
Como con la mayoría de las preguntas de encadenamiento de respuestas, formatee su respuesta de esta manera
# N. language, length, [sequence](link)
`code`
[next sequence](link)
*anything else*
Reglas
- Debe esperar al menos 1 hora antes de publicar una respuesta, después de haber publicado.
- No puede publicar dos veces (o más) seguidas.
- El número índice de una secuencia es el número después de la
A
parte, y con los ceros iniciales eliminados (por ejemplo, paraA000040
el número índice es 40) - Puede suponer que ni la entrada ni la salida requerida estarán fuera del rango numérico de sus idiomas, pero no abuse de esto eligiendo un idioma que solo pueda usar el número 1, por ejemplo.
- Si la longitud de su envío es superior a 65536 caracteres, proporcione un enlace a una forma de acceder al código (por ejemplo, pastebin).
n
nunca será mayor que 1000, o estará fuera de los límites de la secuencia, simplemente para evitar que las discrepancias de precisión impidan que un idioma compita.- Cada 150 respuestas (válidas), aumenta el número de veces que se puede usar un idioma. Entonces, después de haber publicado 150 soluciones, cada idioma se puede usar dos veces (con todas las respuestas anteriores contando para esto). Por ejemplo, cuando se han publicado 150 respuestas, Python 3 se puede usar dos veces, pero debido al hecho de que ya se ha usado una vez, esto significa que solo se puede usar una vez más hasta que se hayan publicado 300 respuestas.
- Sea útil y publique un enlace a la siguiente secuencia que se utilizará. Esto no es obligatorio, pero es una recomendación.
- Las diferentes versiones de lenguajes, por ejemplo, Python 2 y Python 3 son idiomas diferentes . Como regla general, si las diferentes versiones están disponibles en Try It Online, son diferentes idiomas, pero tenga en cuenta que esta es una regla general y no una respuesta rígida.
- No está prohibido, pero intente no copiar el código de la página OEIS e intente resolverlo.
- La codificación dura solo se permite si la secuencia es finita. Tenga en cuenta que la respuesta que provocó esto ( # 40 ) es la excepción a la regla. Algunas respuestas al principio del código rígido de la cadena, pero se pueden ignorar, ya que no es bueno eliminar la cadena hasta, digamos, # 100.
Fragmento de cadena de respuesta
fuente
float
/double
a fin de producir valores para mayorn
?Respuestas:
345. brainfuck , 162 bytes, A000301
Pruébalo en línea!
Siguiente secuencia!
Esto toma como entrada el carácter con el punto de código
n
(según las especificaciones de BF) y sale de la misma manera. Para ver los números, sugiero usar @ Timwi EsotericIDE .Explicación:
Dado que esto almacena todos los números de Fibonacci hasta el importante, fallará para una entrada REALMENTE grande en una cinta acotada.
Esto podría acortarse significativamente al codificar la base (2), pero el golf no es un problema en absoluto.
fuente
22. FiM ++ , 982 bytes, A000024
Siguiente secuencia
fuente
1. Triangular , 10 bytes, A000217
Pruébalo en línea!
Secuencia siguiente
Cómo funciona
El código se formatea en este triángulo
con la IP comenzando en
$
y moviéndose hacia el sudeste (SE, heh), funciona así:fuente
A000217 Triangular numbers
...73. Starry , 363 bytes, A000252
Pruébalo en línea!
Siguiente secuencia
Utiliza la fórmula "
a(n) = n^4 * product p^(-3)(p^2 - 1)*(p - 1)
donde el producto está sobre todos los números primos p que dividen n" de OEIS.La luna es un no-op, pero bueno, esto no es código golf.
fuente
97. Python 3 (PyPy) , 1772 bytes, A000236
En primer lugar, muchas gracias al Dr. Max Alekseyev por ser paciente conmigo. Soy muy afortunado de haber podido contactarlo por correo electrónico para comprender este desafío. Su respuesta Math.SE aquí me ayudó mucho. Gracias a Wheat Wizard por ayudarme también. :)
Pruébalo en línea!
Si da el resultado incorrecto, simplemente aumente el 100 a algo más grande. Creo que 10000 funcionará para 4 pero dejaré mi computadora funcionando durante la noche para confirmarlo; Puede tardar un par de horas en terminar.
Tenga en cuenta que la parte (PyPy) es solo para que pueda usar Python nuevamente. Realmente no conozco muchos otros idiomas y no voy a intentar portar esto a Java y arriesgarme a no terminar a tiempo.
Siguiente secuencia (también, por favor, no hagas más cosas locas de matemáticas; no me quedan versiones de Python, así que alguien más tendrá que salvar este desafío D :)
fuente
107. TrumpScript , 1589 bytes, A000047
Pruébalo en línea!
Programando por primera vez en TrumpScript, es posible que haya reinventado la rueda varias veces: 4 líneas están dedicadas a calcular 2 ^ n. Traté de hacer que pareciera algo que (borracho) Trump pudiera decir. Como beneficio adicional, aquí hay un script de Python que escribí para verificar que estoy haciendo todo bien. Hay algunas diferencias con el programa anterior, pero gran parte es directamente equivalente.
Siguiente secuencia!
fuente
I will make cat feel good
O_OI will make Business Cat feel good
no funcionará ...30. Python 1 , 1112 bytes, A000046
Pruébalo en línea!
Ni siquiera voy a molestarme en jugar golf. ¡Hola, no es mi respuesta Python más larga en este sitio!
Siguiente secuencia
fuente
_
es irrelevante; solo necesitamos repetir eso muchas veces2. Haskell, 44 bytes, A000010
Pruébalo en línea!
Secuencia siguiente
fuente
9. Pyth , 19 bytes, A000025
Banco de pruebas .
Siguiente secuencia
fuente
>Q0
lugar deQ
, ya sabes, tener la siguiente secuencia para ser A000019.Keywords: easy,nice
8. Mathematica (10.1), 25 bytes, A000070
Siguiente secuencia
fuente
206. Protón , 3275 bytes, A000109
Pruébalo en línea!
Secuencia siguiente
fuente
308. ENIAC (simulador) , 3025 bytes, A006060
Pseudocódigo:
Sin simulador en línea, resultado de ejecución:
Registros y constantes:
Programa de flujo de señal y flujo de datos:
"Código" completo en pastebin o en comentarios HTML en el marcado de esta respuesta, para evitar linkrot y una respuesta bastante larga para desplazarse al mismo tiempo. ¡Esto es divertido!
Siguiente secuencia
fuente
15. CJam, 85 bytes, A000060
Demostración en línea
Siguiente secuencia
Disección
OEIS da
dónde
fuente
67. LOLCODE , 837 bytes, A000043
Mi llave de mayúsculas está destinada a escapar, así que escribí todo esto mientras mantenía shift ...
Pruébalo en línea!
Siguiente secuencia
fuente
PRAIME
upper
'd que -.-gggUG
en vim donde lo escribí, pero no soy tan inteligente10. Magma, 65 bytes, A000019
Pruébalo aquí
jajaja incorporado
Siguiente secuencia
fuente
24. Julia 0.5 , 33 bytes, A000023
Expansión de egf exp (−2 * x) / (1 − x).
Pruébalo en línea!
Siguiente secuencia
fuente
121. Pip , 525 bytes, A000022
Demostración en línea
Siguiente secuencia
Dato curioso: cuando se publicó el desafío por primera vez, elaboré una lista de pequeños números de secuencia desagradables a los que quería apuntar con CJam, y A000022 estaba en la parte superior de la lista.
Esto implementa la función de generación descrita en EM Rains y NJA Sloane, On Cayley's Enumeration of Alkanes (or 4-Valent Trees) , Journal of Integer Sequences, vol. 2 (1999), tomando la suma de tantos términos como sea necesario para que se fije el coeficiente th y luego telescópicamente tres cuartos de la suma. En particular, la primera mitad telescópica significa que el índice del ciclo solo debe aplicarse a uno de ellos, y no a todos.
Ck
n
S4
Th
El código se descompone como
Tenga en cuenta que este es mi primer programa Pip, por lo que probablemente no sea muy idiomático.
fuente
156. C # (Mono), 2466 bytes, A000083
Nota: la puntuación es 2439 bytes para el código y 27 para el indicador del compilador
-reference:System.Numerics
.Demo en línea . Este es un programa completo que toma información de la línea de comando.
Siguiente secuencia
Disección
Sigo el comentario de Bowen en OEIS de que la función generadora
A000083(x) = A000237(x) + A035349(x) - A000237(x) * A035350(x)
donde las funciones generadoras de componentes están relacionadas se transforma comoA000237(x) = x EULER(A035350(x))
A035350(x) = BIK(A000237(x))
A035349(x) = DIK(A000237(x))
Utilizo las definiciones de
BIK
yDIK
desde https://oeis.org/transforms2.html, pero las fórmulas parecen tener varios errores tipográficos. Lo corregíLPAL
sin mucha dificultad e independientemente obtuve una fórmulaDIK
basada en la aplicación de la enumeración de Pólya al índice del ciclo del grupo diédrico . Entre el 121 y el 156 estoy aprendiendo mucho sobre la enumeración de Pólya. He enviado algunas erratas , que pueden resultar útiles para otras personas si estas transformaciones vuelven a aparecer en la cadena.fuente
3. JavaScript (ES6), 38 bytes, A000044
Pruébalo en línea!
Siguiente secuencia (debería ser fácil: P)
fuente
13. VB.NET (.NET 4.5), 1246 bytes, A000131
A001246
Pruébalo en línea!
fuente
91. Python 2 (PyPy) , 1733 bytes, A000066
Pruébalo en línea!
Espero que usar Python 2 PyPy cuente como otra versión principal. Si alguien pudiera conseguirme un intérprete de Python 0, también podría usarlo, pero espero que sea válido.
Esto comienza en 1 vértice y funciona hacia arriba, creando la representación de matriz de adyacencia de cada gráfico posible no dirigido con tantos vértices. Si es trivalente, mirará a través del conjunto de potencia de los bordes, que se ordenarán por longitud. Si el primer ciclo que encuentra es demasiado corto, continuará. Si el primer ciclo que encuentra coincide con la entrada (desplazamiento por 3), entonces generará el conteo de vértices correcto y terminará.
Siguiente secuencia <- tenga una fácil como un descanso de todas estas tonterías matemáticas: D
EDITAR : agregué algunas optimizaciones para hacerlo un poco más rápido (aunque todavía no puedo calcular el tercer término dentro del límite de 60 segundos de TIO) sin cambiar el conteo de bytes.
fuente
232. Funky ,
326330332 bytes, A000938Pruébalo en línea!
Políglota con Javascript. Pruébalo en línea!
Secuencia siguiente .
Use la fórmula en la página OEIS para la
O(n^2 log n)
complejidad, en lugar de la ingenuaO(n^6)
.Explicación rápida:
a[n_] := 2*Sum[(n - k + 1)*(n - m + 1)*GCD[k - 1, m - 1], {m, 2, n}, {k, 2, n}] - n^2*((n^2 - 1)/6)
descrita en la sección de código de Mathematica.Prueba de fórmula:
La fórmula es equivalente a esto .
Deje que el tamaño del cuadro delimitador de tres puntos sea
m * k
. Considere 2 casos:k != 0
ym != 0
: hay 2 formas de elegir la orientación de los tres puntos (\
o/
),gcd(k-1, m-1)-1
formas de elegir el punto que se encuentra entre los otros 2 puntos y(n - k) × (n - m)
formas de elegir la posición del cuadro delimitador.k == 0
om == 0
: Hay 2 formas de elegir la orientación (|
o-
),n
formas de elegir la fila / columna en la que se encuentran los puntos yBinomial[n, 3] == (n*(n-1)*(n-2)) / 6
formas de elegir los puntos en esa fila / columna.Algunas notas políglotas:
return
. Sin embargo, como ATaco explicó , [Funky] piensa quereturn
es una variable. Entonces analiza esa expresión, que convenientemente no hace nada, luego analiza la siguiente expresión. Y esto se usa como salida.^
como bitor xor, a diferencia de Funky, que se usa^
como exponenciación. Porn*n
lo tanto, debe usarse en lugar den^2
garantizar la compatibilidad de Javascript.+
,-
,*
, etc.) tienen la misma precedencia y asociativo por la derecha, por lo que necesitan ser adecuadamente entre paréntesis expresiones.fuente
11. Pari / GP, 64 bytes, A000065
Pruébalo en línea!
Siguiente secuencia
fuente
;_; I solved A000064 and you changed it. Downvoted.
281. Java 5, 11628 bytes, A000947
Pruébalo en línea!
Nota al margen:
Esto puede romper la cadena.Nuevo récord en gran bytecount!Debido a que (¿equivocadamente?) Uso espacios en lugar de pestañas, el bytecount es más grande de lo necesario. En mi máquina son 9550 bytes. (al momento de escribir esta revisión)20
defor (int i = 0; i < 20; ++i)
a1000
)¡Hurra! ¡Esto puede calcular más términos que los que figuran en la página OEIS! (Por primera vez, para un desafío, necesito usar Java) a menos que OEIS tenga más términos en alguna parte ...
Explicacion rapida
Explicación de la descripción de la secuencia.
La secuencia solicita el número de polienoides no planos libres con el grupo de simetría C 2v , donde:
Por ejemplo, considera los árboles
El primero no puede incrustarse en la red hexagonal, mientras que el segundo sí. Esa inclusión particular se considera diferente del tercer árbol.
(2)
y el(3)
árbol de arriba son planos. Este, sin embargo, no es plano:(hay 7 vértices y 6 aristas)
Por ejemplo, el único polienoide con 2 vértices.
tiene 3 planos de reflexión: el horizontal
-
, el vertical|
y el paralelo a la pantalla de la computadora■
. Eso es demasiado.Por otro lado, este
Tiene 2 planos de reflexión:
/
y■
.Explicación del método.
Y ahora, el enfoque sobre cómo contar realmente el número.
Primero, doy
a(n) = A000063(n + 2) - A000936(n)
por sentado la fórmula (que figura en la página OEIS). No leí la explicación en el periódico.[TODO arregla esta parte]
Por supuesto, contar plano es más fácil que contar no plano. Eso es lo que hace el periódico también.
Entonces ... el programa cuenta el número de polienoides planos y lo resta del total.
Como el árbol es plano de todos modos, obviamente tiene el
■
plano de reflexión. Por lo tanto, la condición se reduce a "contar el número de árboles con un eje de reflexión en su representación 2D".La forma ingenua sería generar todos los árboles con
n
nodos y verificar la simetría correcta. Sin embargo, debido a que solo queremos encontrar el número de árboles con un eje de reflexión, podemos generar todos los medios árboles posibles en una mitad, reflejarlos a través del eje y luego verificar la simetría correcta. Además, debido a que los polienoides generados son árboles (planos), debe tocar el eje de reflexión exactamente una vez.La función
public static Graph[] expand(Graph[] graphs, Point.Predicate fn)
toma una matriz de gráficos, cada uno tienen
nodos y genera una matriz de gráficos, cada uno tienen+1
nodos, no iguales entre sí (bajo traducción), de modo que el nodo agregado debe satisfacer el predicadofn
.Considere 2 posibles ejes de reflexión: uno que atraviesa un vértice y coincide con los bordes (
x = 0
), y otro que es la bisectriz perpendicular de un borde (2x = y
). Podemos tomar solo uno de ellos porque los gráficos generados son isomórficos, de todos modos.Entonces, para el primer eje
x = 0
, comenzamos desde el gráfico base que consiste en un solo nodo(1, 0)
(en caso de quen
sea impar) o dos nodos con un borde en medio(1, 0) - (2, 0)
(en caso de quen
sea par), y luego expandimos los nodos de tal maneray > 0
. Esto se hace mediante la sección "Reflexión tipo 1" del programa, y luego para cada gráfico generado, se refleja (refleja) a través del eje Xx = 0
(g.reflectSelfX()
), y luego verifica si tiene la simetría correcta.Sin embargo, tenga en cuenta que si
n
es divisible por 2, de esta manera contamos cada gráfico dos veces, porque también generamos su imagen especular por el eje2x = y + 3
.(nota las 2 naranjas)
Similar para el eje
2x = y
, si (y sólo si)n
es par, partimos del punto(1, 1)
, generar gráficos de tal manera que2*x > y
, y reflejar cada uno de ellos sobre el2x = y
eje (g.reflectSelfType2()
), conectar(1, 0)
con(1, 1)
, y comprobar si tienen simetría correcta. Recuerde dividir entre 2 también.fuente
6. R , 71 bytes, A000072
Pruébalo en línea!
Siguiente secuencia
fuente
the answer before the last posted (the one who didn't break the chain) will win
14. Python 2 , 60 bytes, A001246
Pruébalo en línea!
Siguiente secuencia
fuente
26. TI-BASIC, 274 bytes , A000183
Evalúa la fórmula recursiva que se encuentra en el enlace OEIS.
Secuencia siguiente
fuente
34. Prólogo (SWI) , 168 bytes, A000073
Pruébalo en línea!
Siguiente secuencia
fuente
49. SageMath , 74 bytes, A000003
Pruébalo en línea!
Siguiente secuencia
fuente
76. Pigmeo , 4147 bytes, A000036
Secuencia siguiente
Puede ejecutar el código en esta página . Por ejemplo, puede obtener el décimo número en la secuencia copiando el código anterior y agregando:
fuente