Inspirado en un viejo manual ...
El reto
Defino la una ésimo sufijo vector de b como la lista de Boole de longitud una con b arrastra valores Truthy.
Escriba un programa o función que, dado a a y b por cualquier medio, devuelve el a th sufijo vector de b por cualquier medio.
Ahora esto puede parecer trivial, pero este es el truco: su puntaje es el recuento de bytes más el primer año en que su solución hubiera funcionado.
Reglas
Se aplican todas las reglas estándar, excepto que también se pueden usar los idiomas y las versiones de idiomas que se lanzaron después de este desafío.
Salida utilizando cualquier representación de valores booleanos que utilice su idioma, por ejemplo 1
/ 0
, True
/ False
, TRUE
/ FALSE
, "True"
/ "False"
, etc.
Salida utilizando cualquier representación de las listas que su uso del lenguaje, por ejemplo 0 0 1
, [False,False,True]
, (FALSE;FALSE;TRUE)
, {"False","False","True"}
, etc.
Puede suponer que un ≥ b siempre es cierto y que son de un tipo de datos apropiado.
Casos de prueba
Dado a = 7 yb = 3, retorno0 0 0 0 1 1 1
Dado a = 4 y b = 4, retorno[True,True,True,True]
Dado a = 2 yb = 0, retorno(FALSE;FALSE)
Dado a = 0 yb = 0, retorno{}
Ejemplo de solución y puntuación
Es posible que desee enviar la solución {⌽⍺↑⍵⍴1}
usando Dyalog APL. Eso sería un bytecount de 8. Esta es una función dinámica, que funciona desde la versión 8.1 de Dyalog APL, lanzada en 1998, por lo que mi puntaje total es 2006. Mi respuesta presentada debería ser algo así como:
# Dyalog APL 8.1, 1998 + 8 = 2006
{⌽⍺↑⍵⍴1}
Optional explanation...
Recommended: Link to documentation showing when the features you used were released.
¡La puntuación más baja gana!
fuente
Respuestas:
APL \ 360, 1968 + 3 bytes = 1971
Una creación del tutorial @NBZ vinculada a. No sé por qué @NBZ dijo que obtendría un puntaje de 1970, porque APL \ 360 no se implementó hasta 1968, y APL anteriores como APL \ 1130 no tenían la función de sufijo vectorial (consulte la página 208 de aquí ).
fuente
Adelante, 1970 + 38 = 2008
uso:
7 3 s
imprime "0 0 0 0 -1 -1 -1"fuente
sv
y nos
, o algo más un byte?APL, 1968 + 5 = 1973
Hasta 5 caracteres:
Versión antigua:
Bueno, en realidad ya dio la respuesta, simplemente eliminé la definición de función dinámica y verifiqué que funcionara en 1968. Para referencia aquí está el manual:
http://www.softwarepreservation.org/projects/apl/Books/APL360ReferenceManual
fuente
SAS, 1966 + 45 = 2011
¡Es hora de que SAS brille!
SAS no se publicó por primera vez hasta 1972, pero este paso de datos solo usa características muy básicas que estoy bastante seguro de que habrían estado disponibles incluso en las primeras versiones preliminares desde 1966 en adelante, por lo que creo que habría funcionado en ese momento. La entrada va después
a=
yb=
, y la salida se imprime en el registro.¡Me sorprendería si alguien todavía tuviera un IBM System / 360 con la versión correcta de SAS para verificar esto realmente!
fuente
Ratón-1979 , 1979 + 19 = 1998
Traducción de: Forth .
La especificación es realmente críptica para mí, pero creo que esto hace lo correcto.
fuente
&Tuck
estuviera disponible hasta la versión 2002. Y los bucles parecen ser infinitos.TI-Basic, 1990 + 21 = 2011
La primera calculadora TI en la que funciona este programa es la TI-81, introducida en 1990.
Editar: noté que debo admitir una lista vacía ... aumentó el código en 4 bytes
Casos de prueba
fuente
Ans
un método de salida aceptable, a menos que esté impreso.Prompt
yseq(
son fichas de un byte y los otros personajes son de un byte cada uno.Ans
es la forma predeterminada de devolver un valor en la serie TI-83 Basic. Además, cuando se ejecuta un programa, la última línea se imprime automáticamente. Entonces tienes lo mejor de ambos mundos.Mathematica 1.0, 1988 + 22 bytes = 2010
No estoy seguro de si esto funciona, solo revisé la documentación en 10.3 y busqué cosas que decían Presentado en 1988 (1.0)
fuente
/.
y->
,Array
68k TI-Basic, 1995 + 25 = 2020
La primera calculadora TI en la que funciona este programa es la TI-92, presentada en 1995.
A diferencia de la serie TI-83, 68k TI-Basic admite la lista vacía.
fuente
Prompt
no es válido en una función y un programa no puede devolver un valor. Así que esto debe ingresarse en la pantalla de inicio. Por otro lado,define f(a,b)=seq(x>a-b,x,1,a)
define una función válida a la que se le puede asignar ayb como argumentos. (Verificado en mi TI-92 del 13/09/1995)define
y llamarf(2,1)
o similar para tokenizarlo, el tamaño informado por el sistema operativo es de 25 bytes.Python 1.0, 1994 + 26 = 2020
Guardado 2 bytes gracias a DSM.
Lambda se presentó con la primera versión principal, 1.0
fuente
MATL , 2015 + 1 + 4 = 2020
Esto funciona desde la versión 6.0.0 del lenguaje (utiliza entrada implícita, que se introdujo en esa versión), con fecha del 31 de diciembre de 2015.
He agregado
1
al puntaje de acuerdo con el comentario de @drolex sobre posibles configuraciones regionales diferentes.Pruébalo en línea!
Explicación
fuente
J, 1990 + 8 = 1998
Argh Estaba investigando esta respuesta y alguien llegó a APL antes de que pudiera esperar entender el idioma. Aquí está mi solución J en su lugar.
fuente
Prólogo, 1972 + 57 = 2029
Uso:
a(7,3,L).
se unificaráL
con[0,0,0,0,1,1,1]
.Realmente no estoy muy seguro de cuándo
is
se implementó en el lenguaje, y dudo que realmente pueda encontrar la fecha exacta. Sin embargo, es una función bastante básica incorporada, así que supongo que ya existía cuando apareció por primera vez el lenguaje en 1972 .No es que realmente importe, estoy lejos de ganar con esta respuesta.
fuente
SMP , 1983 + 28 bytes = 2011
Creo que entendí bien ...
S
: 2.10, página 48Ar
: 7.1, página 102Map
: 7.2, página 106$1
: 7.1, página 104Y si está familiarizado con Mathematica, no,
Ar
no funciona así que . Más comoRange
+Select
.fuente
(#>x&/.x->#)/@Range[#+#2]&
en Mathematica(#>x&/.x->#-#2)/@Range[#]&
Vim, 1991 + 21 = 2012
La entrada se ve así:
Y la salida se ve así:
Explicación:
fuente
B , 1971 + 54 = 2025
Consulte " La referencia del usuario a B " para ver el manual de este precursor C sin tipo.
fuente
Pyth, 2015 +
94 =20242019¡Gracias a @FryAmTheEggman por su ayuda!
Pruébalo aquí!
Explicación
fuente
> <> , 2009 + 14 + 3 para -v = 2026
b
ya
debe proporcionarse directamente en la pila con-v
, en orden inverso.La salida no está separada por espacios como en los ejemplos, pero eso no parece ir en contra de ninguna regla establecida. Utiliza 0 y 1 para representar falso y verdadero, como lo usa el lenguaje.
No funciona con la versión actual desde
?
ahora muestra su valor de prueba de la pila.No estoy seguro de que todas las funciones se implementaron desde el día 1,
-v
por ejemplo, podrían haberse proporcionado más tarde como un producto básico. Intentaré asegurarme de que mi respuesta sea correcta este fin de semana.fuente
05AB1E , 2016 + 9 = 2025
Esto definitivamente se puede jugar más, pero aquí hay un comienzo: p. Código:
Pruébalo en línea! La entrada se da como b, a .
También 9 bytes:
0×1I×0ñRS
.fuente
°
existía en 2016 por cierto?)PowerShell v1, 2006 + 28 = 2034
Utiliza el operador de coma para construir la matriz (s), que ha estado en PowerShell desde el principio.
fuente
Mathcad, 1998 + 42 = 2040
Los "bytes" se interpretan como el número de caracteres distintos del teclado (por ejemplo, el operador 'for' (incluida una línea de programación) es un solo carácter ctl-shft- #, o un clic en la barra de herramientas de Programación)).
El recuento de bytes anterior supone que las definiciones a y b no cuentan para el total; agregue 4 bytes para las definiciones si esta suposición no es válida.
La versión de la función que se muestra a continuación agrega 5 bytes para la definición y otros 3 bytes para cada uso (suponiendo que los valores ayb se escriben directamente).
Como mi solución Mathcad claramente debería estar jugando con las camisetas rojas y no con las de la competencia, he agregado una tabla de soluciones. Tenga en cuenta que como Mathcad no tiene una matriz vacía, he usado una cadena vacía ("") en su lugar; He usado 0 para indicar dónde no he calculado los pares b> a.
fuente
PHP, 1995 + 56 bytes = 2051
Vista en despiece ordenadofuente
Javascript ES6, 2015 + 46 = 2061
Devuelve una matriz de 0 y 1
Javascript ES6, 2015 + 50 = 2065
Devuelve una cadena de
0
y1
caracteresJavascript, 1995 + 61 = 2056
Devuelve una cadena de
0
y1
caracteresfuente
k ( kona ), 1993 + 15 = 2008
Crea una lista de valores b verdaderos y los concatena en una lista de valores (ab) falsos.
fuente
R , 20 bytes + 1993 = 2013
Pruébalo en línea!
Posiblemente esto podría funcionar en S, lo que reduciría el puntaje a 2008, pero no he podido verificarlo.
fuente
Sonrisa BÁSICO 3, 2014 + 25 = 2039
La primera versión pública de SmileBASIC 3 se lanzó en Japón con la aplicación SmileBASIC para Nintendo 3DS en noviembre de 2014.
Imprime una cadena donde 0 es falso y 1 es verdadero (ya que están en el lenguaje mismo).
fuente