Resumen
Escriba un programa o función, que no tome ninguna entrada, y envíe todos los números enteros, entre -1000 y 1000 en orden ascendente, a la salida estándar, uno por línea, de esta manera:
-1000
-999
-998
-997
...
Y después de eso, debe imprimir el tiempo necesario para imprimir estos números, o el tiempo desde el inicio de la ejecución del programa en milisegundos (si es necesario, también puede contener otras cosas, por ejemplo: tiempo empleado: xxxms está bien). Puede ser un flotante o un entero (si imprime un entero, debe redondearlo al más cercano).
Código de ejemplo
using System;
using System.Diagnostics;
class P
{
static void Main(string[] args)
{
Stopwatch st = Stopwatch.StartNew();
for (int i = -1000; i <= 1000; i++)
{
Console.WriteLine(i);
}
Console.WriteLine(st.ElapsedMilliseconds);
}
}
Restricciones
Las lagunas estándar no están permitidas
Otras informaciones
Es el código de golf, por lo que gana la presentación más corta.
Respuestas:
MATL , 13 bytes
Pruébalo en línea!
fuente
Implicitly start timer
. ¿Fue eso desde el primer día o es el resultado de un desafío anterior?Octava,
4643363023 bytesEsto imprimirá:
Si no le gusta
ans =
, entonces tenemos que agregar 6 bytes adicionales paradisp
:Ahorró muchos bytes gracias a algunos recordatorios de rahnema1.
Explicación:
fuente
JavaScript, 60 bytes
Para obtener todos los eventos registrados, debe usar el script de la consola del desarrollador (de lo contrario, los registros se borran después de cierta cantidad de ellos).
fuente
i=~1e3
guardar un byte :-)CJam , 18 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 3.5,
807773 bytesSoluciones anteriores involucradas usando
timeit
ytime.time()
, eran más grandes.Tristemente,
time.process_time()
se introdujo en Python 3.3.¡Gracias a Dennis por guardar 4 bytes!
fuente
Bash (+ coreutils),
41,49,46,4442 bytesEDICIONES:
|&
para la redirección de stderr;seq -1000 1000
conseq -1e3 1e3
(¡Gracias @Dennis!);Golfed
¡Pruébelo en línea!
Nota al margen
El uso de una utilidad "time" de coreutils, en lugar de Bash-builtin, da como resultado un
41, Solución de 35 bytes:"\" está aquí para hacer que bash invoque el comando real, en lugar del comando incorporado.
Desafortunadamente, la precisión de tiempo de coreutils es solo de 1/100, lo que ha generado dudas sobre si es una solución válida.
fuente
R, 42 bytes
Esto imprimirá
Para eliminar
elapsed
, son necesarios dos bytes adicionales:fuente
Bash + GNU utils, 43
El
date
comando da el número de segundos desde la época concatenada con los nanosegundos actuales. Este comando se ejecuta antes y después.bc
toma la diferencia e imprime.Pruébalo en línea .
Tenía la esperanza de hacer esto por 17:
Pero la salida del tiempo da más de lo que necesitamos:
fuente
1000
con1e3
.date +%s%3N
.JavaScript (ES6),
6359 bytesfuente
new (d=Date)
y comenzando en -1000:for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
~1e3
es un gran toque.952
de1000
¿ por qué es eso?performance.now()
ni laPerformance
interfaz en absolutoR, 66 bytes
Probablemente no sea el más corto pero funciona.
fuente
proc.time
puede almacenar en una variable?t=proc.time;x=t(); ...
Mathematica, 51 bytes
Explicación
Almacene la
Print
función enp
. Imprima los números de 2001, comenzando en -1000, incrementándose en 1.Encuentra el tiempo total transcurrido en segundos.
Multiplique eso por 1000 (segundos -> milisegundos) y
p
(Print
).fuente
Timing
que tampoco satisface la descripción del problema (ligeramente vaga)AbsoluteTiming
?Timing
genera el tiempo de CPU y no incluye el tiempo que tarda el front-end. Es decir. se cuenta el tiempo necesario para incrementar el contadorArray
, pero no se cuenta el tiempo necesario para mostrar esos números en la pantalla. Este efecto se puede ver en este simple ejemplo:Timing@Print@3
da 0 segundos, peroAbsoluteTiming@Print@3
no.PHP,
11070 bytestodavía un poco largo; pero salvé 38 con la pista de @ AlexHowansky y dos más con
1e3
y~1e3
.impresiones flotantes. Corre con
-r
.fuente
Powershell, 27 bytes
Gracias a AdmBorkBork por señalar que la salida por defecto detallada es aceptable en el desafío.
Los resultados resultan como:
para un resultado más contenido de solo milisegundos, use la respuesta original
Ahorre tiempo antes como $ 1, imprima en stdout automáticamente, luego obtenga el tiempo entre el comienzo y el final de la ejecución.
fuente
oh
(Out-Host
), lo que omitirá el hecho de queMeasure-Command
captura la canalización. Ejemplo en TIOMeasure-Command{-1e3..1e3|oh}
es de 29 bytes. Claro, imprime cosas adicionales gracias aMeasure-Command
, pero el desafío establece explícitamente que está bien.$1=date;-1e3..1e3;(date)-$1
es 2 bytes más corto que la opción de medida-comando allí,Perl 6 , 45 bytes
Intentalo
Expandido:
fuente
J , 22 bytes
Pruébalo en línea!
timex
es una función integrada que ejecuta la cadena y devuelve el tiempo que tardó en evaluarla en segundos. La cadena forma el rango [-1000, 1000] usandoi:
, luego lo columiniza usando,.
e imprime usando el incorporadoecho
.fuente
Pyth ,
181514 bytesPruébalo aquí!
Explicación
Esto es similar a mi respuesta de Python.
Ediciones :
fuente
Noodel ,
1713 bytes13 bytes
Intenté un enfoque ligeramente diferente y ahorré 4 bytes.
Intentalo:)
Cómo funciona
17 bytes
Intentalo:)
Cómo funciona
El fragmento utiliza los valores de -4 a 4 para no tardar tanto en completarse.
fuente
TI-Basic, 22 bytes
Muchos comandos están representados por tokens de 1 o 2 bytes.
Probado en un CSE TI-84 emulado.
fuente
Matlab
1623 bytesEditar: me di cuenta de que estaba violando varias de las reglas de este desafío. Eso me enseñará a leer el desafío a altas horas de la noche. Ahora también me doy cuenta de que la respuesta corregida es casi idéntica a la solución Octave, pero así es la vida.
Imprime cada elemento en la matriz espacial lineal creada -1000: 1000 (la falta de; imprime en la consola).
tic / toc registra la hora y toc imprime la hora en la consola con o sin; . Se necesita 1e3 para imprimir en milisegundos.
fuente
Groovy,
7573 bytesGracias a jaxad0127 por guardar 2 bytes!
Pruébalo aquí!
fuente
nanoTime
con una división entre 1e6 es más corto quecurrentTimeMillis
. También da tiempo fraccional.8 ,
6147 bytesGracias a 8th_dev por una buena mejora (guardado 14 bytes)
Esto imprimirá todos los números enteros entre -1000 y 1000 en orden ascendente y el tiempo necesario (en milisegundos) para imprimir estos números
fuente
Japt, 23 bytes
Hay dos soluciones equivalentes:
El primero básicamente hace lo siguiente:
Es decir, los números se imprimen en el medio de la resta para evitar tener que almacenar el tiempo en una variable. Sin embargo, no es más corto que la ruta variable, que es básicamente:
En la última versión de Japt (más reciente que este desafío),
K
está configurado para regresar automáticamentenew Date()
. Esto reduce la primera solución a 21 bytes:¡Pruébelo en línea!
fuente
QBIC , 34 bytes
Utiliza la
TIMER
función QBasic , que devuelve segundos en notación decimal. Hacer que se vea bonito agrega algunos bytes.Explicación
fuente
C ++ - 261
Solo para reír, pensé en publicar una respuesta en C ++.
Lo dejaré como ejercicio para determinar qué está haciendo y cómo llamarlo, no debería ser demasiado difícil.
fuente
Scala, 77 bytes
fuente
ForceLang, 124
Nota: debe suprimir
stderr
al ejecutar esto. Creo que el consenso sobre meta es que esto no incurre en una penalización por conteo de bytes.fuente
SimpleTemplate , 92 bytes
Lo que realmente me mató fue la necesidad de registrar el tiempo.
Como no hay matemáticas (todavía), esto hace las cosas bastante difíciles, lo que me obliga a escribir PHP directamente.
Sin golf:
Renuncia:
He ejecutado esto con el commit e118ae72c535b1fdbe1b80c847f52aa161854fda , del 13/01/2017.
La última confirmación fue arreglar algo que no está relacionado con el código aquí.
fuente
C
134133 bytesGracias a @Thomas Padron-McCarthy por guardar 1 byte.
Versión sin golf:
fuente
int t=time(null);
...printf("%d",time(null)-t)
?Gura , 75 bytes
fuente
Clojure, 94 bytes
Estoy decepcionado de cuánto tiempo pasó esto, pero supongo que nadie afirmó que Clojure era un buen idioma para jugar golf.
Solución ingenua que solo registra la hora de inicio, realiza un bucle y luego imprime la hora actual menos la hora de inicio. A menos que Clojure tenga un captador de tiempo ms de lo que me falta, no sé cómo esto podría acortarse. Tal vez algún tipo de bucle implícito?
fuente