Descargo de responsabilidad: ¡Esto está fuertemente inspirado en "Polyglot the OEIS!" pero soluciona el problema que condujo al cierre (consulte la sección de resultados) y se volvió a publicar para no invalidar las respuestas.
Introducción
Todos conocemos y amamos la enciclopedia en línea de secuencias enteras ( OEIS ). Entonces, ¿qué pasaría si hiciéramos una versión fuera de línea de las secuencias interesantes? Bueno, eso sería demasiado fácil, ¿no es así y cómo seleccionarías una secuencia con nuestra interfaz estándar? No. Necesitamos una solución más fácil para esto. Un políglota!
Entrada
Su entrada será un número entero no negativo n
.
Salida
Su salida será
- La
n
entrada enésima de una secuencia OEIS O - Las primeras
n
entradas de una secuencia OEIS.
Puede considerar que el índice se basa en 1 o en 0 como lo prefiera.
Para no hacer de esta pregunta un duplicado de La impresora entera versátil secuencias constantes están prohibidas. Esto también debería aumentar el nivel de dificultad de las presentaciones y evitar soluciones "aburridas";)
Una secuencia no es constante si existen dos miembros de secuencia que son desiguales.
Uhm, entonces, ¿dónde está el desafío?
Tienes que poliglotar la funcionalidad anterior. Es decir, si admite los idiomas A, B y C, todos deben implementar diferentes secuencias OEIS. La elección de la secuencia no está limitada, excepto que necesita diferentes para todos los idiomas.
Es decir, si ejecuta el programa proporcionado en el idioma A, se generará la secuencia X, si ejecuta el programa proporcionado en el idioma B, se generará la secuencia Y (con X! = Y) y si ejecuta el programa proporcionado en el lenguaje C, se generará la secuencia Z (con X! = Z && Y! = Z).
¿Quién gana?
La respuesta con más pares de secuencia / idioma gana. El primer desempate es el tamaño del código (en bytes), siendo menor el mejor. El segundo desempate es el tiempo de presentación y antes es mejor.
¿Algunas palabras / reglas finales?
- Debe declarar qué idioma generará qué secuencia.
- Se aplican las reglas estándar de E / S.
- Si se utilizan diferentes codificaciones entre idiomas, ambos programas deben usar la misma secuencia de bytes.
- Idioma (2/3) Python revisiones no cuentan como diferentes idiomas. Las diferentes implementaciones de un idioma (como Browser JS vs Node.js) también cuentan como idiomas diferentes.
- Se aplican lagunas estándar.
Respuestas:
3 idiomas (1 byte) - Pyth ( A001477 ), MAT ( A000027 ), Braingolf ( A000217 )
¿Cómo?
Q
hace lo siguiente:En MATL, significa
+ 1
, por lo que básicamente se evalúa comoinput + 1
.En Pyth, significa entrada, por lo que solo genera la entrada.
En Braingolf, es el incorporado para los números triangulares.
Mini-poliglota
Pyth puede ser reemplazado por cualquiera de los siguientes lenguajes: GolfScript , Pyke , Brachylog o Brain-Flak .
fuente
10 idiomas, 122 bytes
Definitivamente puedo agregar un montón más. 1 indexado a menos que se especifique lo contrario.
Tenga en cuenta que es posible que no esté actualizado en los enlaces TIO cuando estoy seguro de que los cambios más recientes no afectaron a los programas más antiguos; puede probarlos si lo desea, pero copiando más de 10 enlaces TIO nuevos cada vez que realice un cambio se cansa después de un rato. Copiaré nuevas cada 5 actualizaciones más o menos.
cQuents v0, A000007
Código relevante:
#|A=1:0;
#|A
captura la entrada y está allí para comentarios de Python.=1
significa que el primer elemento es1
,:0
significa que el resto son0
, emite eln
término dado entradan
. cQuents v0 tiene una característica / error extraño que cuando;
se lee un token inesperado pero válido, como , hace que finalice el análisis.Pruébalo en línea!
PingPong, A001478
Código relevante:
#|A=1:0;~@
Salidas a través del código de salida. 0 indexado.
#
se salta el siguiente char.=
No hace nada aquí.1
empuja1
e:
imprime1
en STDOUT.0
empujones0
.)
no hace nada.;
empuja la entrada,~
aparece y empuja-n-1
.@
termina El código de salida es la parte superior de la pila.Pruébalo en línea!
axo A001477
Código relevante:
}{\
0 indexado.
}
lee y empuja un número entero desde STDIN (requiere alguna línea nueva por alguna razón),{
imprime la parte superior de la pila y\
finaliza el programa. No estoy seguro de lo que hacen los personajes anteriores, pero nada que importe en este caso.Pruébalo en línea!
cerebro, A000027
Código relevante:
,[.,]
Programa simple para gatos de esolangs.org. Emite la entrada.
Pruébalo en línea!
> <>, A000030
Código relevante:
#
...;oi
#
espejos y envolturas a la derecha, que lo dirigen a leerio;
, lo que genera el primer carácter de la entrada. 0 indexado.Pruébalo en línea!
Ruby, A023443
Código relevante:
print (0 and gets.to_i-1
...)
0 indexado. Imprime la entrada menos 1.
0
es veraz en Ruby, pero falsey en Python.Pruébalo en línea!
Python 3, A000578
Código relevante:
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()
Arrancado de la publicación original de HyperNeutrino, pero es un políglota bastante conocido.
quit()
termina el programaPruébalo en línea!
Python 2, A000290
Código relevante:
#coding:utf-8
es necesario para que funcione el material de carbón. También estafado de la publicación original de HyperNeutrino.quit()
termina el programaPruébalo en línea!
Carbón, A001489
Código relevante:
⎚I±N»
0 indexado.
⎚
borra la consola (el carbón imprime ASCII como está) eI±N
imprime el negativo de la entrada.»
es un error de análisis y finaliza el programa.Gracias a ASCII-only por su ayuda en el chat.
Pruébalo en línea!
Cardenal, A020725
Código relevante:
Agrega 1 a la entrada y elimina todos los demás punteros.
Pruébalo en línea!
fuente
5 idiomas ( 05AB1E , En realidad , Cjam , jalea , MAT ), 7 bytes
¡Pruébalo en línea !:
fuente
3 idiomas: protón, A000583 ; Python 3, A000578 ; Python 2, A000290
Protón , 49 bytes
Pruébalo en línea!
Python 3 , 49 bytes
Pruébalo en línea!
Python 2 , 49 bytes
Pruébalo en línea!
Explicación
Proton no tiene
'''...'''
cadenas, por lo que se(''',''')
convierte en('' ',' '')
algo que de alguna manera no causa problemas Evalúa a''
, haciendo(''',''')!=','
evaluar aTrue
.Python tiene estas cadenas, por lo que
(''',''')
es sólo','
por lo que(''',''')!=','
se evalúa comoFalse
.Python 2 usa la división de piso para enteros, por lo que
1/2>0
es falso en Python 2 y verdadero en Python 3.fuente
1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()
y luego agrega idiomas como JavaScript después5 idiomas, 107 bytes
Perl: A000035
Al usarlo como
=
delimitador paras///
medios, podemos excluir fácilmente el código que no queremos, y al usarlo)
como delimitador paraq{}
medios despuésprint
de usarq
todos los demás idiomas, podemos simplemente trabajar en<>
directamente, sin preocuparnos.Pruébalo en línea!
Rubí: A001477
En Ruby, en
//
realidad es/
(dividir por)/.../
(coincidencia de expresiones regulares), por lo que siempre que la expresión regular se termine y se convierta en un número, podemos dividirla de manera segura.__id__
es más corto que.to_s.ord
, entonces sólo contienen el resto del código que no queremos en'
s, juegoq
degets
yprint
con todos los demás.Pruébalo en línea!
Python 2: A005843
Usando el truco estándar para diferenciar 2 de 3 y adjuntando cosas que no queremos
"""
y comentarios.Pruébalo en línea!
Python 3: A008585
Pruébalo en línea!
JavaScript (navegador ES6): A000027
Bastante sencillo para JS, terminó siendo más fácil no reutilizar lo existente
print
e ir a SpiderMonkey, pero eso también podría ser posible.fuente
6 idiomas: cúbicamente 5/6/7/8/9/10,
444032 bytesTachado 44 sigue siendo regular 44; (
Esto imprime:
Explicación:
Pruébalo en línea! (Cúbicamente 6x6x6)
fuente