Sommaire
Écrivez un programme ou une fonction, qui ne prend aucune entrée, et sort tous les nombres entiers, entre -1000 et 1000 dans l'ordre croissant, vers la sortie standard, un par ligne, comme ceci:
-1000
-999
-998
-997
...
Et après cela, vous devez imprimer le temps nécessaire pour imprimer ces nombres, ou le temps à partir du début de l'exécution du programme en millisecondes (si nécessaire, il peut également contenir d'autres éléments, par exemple: temps pris: xxxms est ok). Il peut s'agir d'un flottant ou d'un entier (si vous imprimez un entier, vous devez arrondir au plus proche).
Exemple de code
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);
}
}
Restrictions
Les échappatoires standard ne sont pas autorisées
Autres infos
C'est du golf de code, donc la soumission la plus courte l'emporte.
Réponses:
MATL , 13 octets
Essayez-le en ligne!
la source
Implicitly start timer
. Était-ce là dès le premier jour, ou est-ce le résultat d'un défi antérieur?Octave,
4643363023 octetsCela imprimera:
Si vous n'aimez pas le
ans =
, alors nous devons ajouter 6 octets supplémentaires pourdisp
:Beaucoup d'octets enregistrés grâce à quelques rappels de rahnema1.
Explication:
la source
JavaScript, 60 octets
Afin d'obtenir tous les événements enregistrés, vous devez utiliser le script à partir de la console du développeur (sinon les journaux sont effacés après un certain nombre d'entre eux).
la source
i=~1e3
pour économiser un octet :-)CJam , 18 octets
Essayez-le en ligne!
Comment ça marche
la source
Python 3.5,
807773 octetsLes solutions précédentes impliquaient d'utiliser
timeit
ettime.time()
, elles étaient plus grandes.Malheureusement, a
time.process_time()
été introduit en python 3.3.Merci à Dennis d' avoir économisé 4 octets!
la source
Bash (+ coreutils),
41,49,46,44, 42 octetsMODIFICATIONS:
|&
pour la redirection stderr;seq -1000 1000
parseq -1e3 1e3
(Merci @Dennis!);Golfé
Essayez-le en ligne!
Sidenote
L'utilisation d'un utilitaire "time" coreutils, au lieu du Bash-builtin, se traduit par un
41, Solution de 35 octets:"\" est là pour que bash invoque la vraie commande, au lieu de la commande intégrée.
Malheureusement, la précision du temps de coreutils n'est que de 1 / 100s, ce qui a soulevé des inquiétudes quant à la validité de la solution.
la source
R, 42 octets
Cela imprimera
Pour supprimer
elapsed
, deux octets supplémentaires sont nécessaires:la source
Utilitaires Bash + GNU, 43
La
date
commande donne le nombre de secondes écoulées depuis l'époque concaténée avec les nanosecondes actuelles. Cette commande est exécutée avant et après.bc
prend la différence et imprime.Essayez-le en ligne .
J'espérais le faire depuis 17 ans:
Mais la sortie du temps donne plus que ce dont nous avons besoin:
la source
1000
par1e3
.date +%s%3N
.JavaScript (ES6),
6359 octetsla source
new (d=Date)
et à partir de -1000:for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
~1e3
c'est une bonne touche.952
pour1000
quelle raison?performance.now()
ou de l'Performance
interface du toutR, 66 octets
Probablement pas le plus court mais ça marche.
la source
proc.time
être stocké dans une variable?t=proc.time;x=t(); ...
Mathematica, 51 octets
Explication
Enregistrez la
Print
fonction dansp
. Imprime les nombres de 2001, commençant à -1000, incrémentant de 1.Trouvez le temps total écoulé en secondes.
Multipliez cela par 1000 (secondes -> millisecondes) et
p
(Print
).la source
Timing
ne pas répondre à la description du problème (légèrement vague)AbsoluteTiming
?Timing
le temps CPU et n'inclut pas le temps pris par le frontal. C'est. le temps nécessaire pour incrémenter le compteurArray
est compté, mais le temps nécessaire pour afficher ces nombres à l'écran n'est pas compté. Cet effet peut être vu dans cet exemple simple:Timing@Print@3
donne 0 seconde, maisAbsoluteTiming@Print@3
ne le fait pas.PHP,
11070 octetsencore un peu long; mais a sauvé 38 avec le conseil de @ AlexHowansky et deux autres avec
1e3
et~1e3
.les impressions flottent. Courez avec
-r
.la source
Powershell, 27 octets
Merci à AdmBorkBork d'avoir souligné que la sortie par défaut détaillée est acceptable dans le défi.
Les résultats résultent comme:
pour un résultat plus contenu de quelques millisecondes seulement, utilisez la réponse originale:
Gagnez du temps avant comme $ 1, imprimez sur stdout automatiquement, puis obtenez le temps entre le début et la fin de l'exécution.
la source
oh
(Out-Host
) qui contournera le fait quiMeasure-Command
capture le pipeline. Exemple chez TIOMeasure-Command{-1e3..1e3|oh}
est de 29 octets. Bien sûr, il imprime des éléments supplémentaires grâce à laMeasure-Command
, mais le défi indique explicitement que c'est OK.$1=date;-1e3..1e3;(date)-$1
est également 2 octets plus court que l'option mesure-commande là-bas,Perl 6 , 45 octets
Essayez-le
Étendu:
la source
J , 22 octets
Essayez-le en ligne!
timex
est une fonction intégrée qui exécute la chaîne et renvoie le temps nécessaire pour l'évaluer en secondes. La chaîne forme la plage [-1000, 1000] à l'aidei:
, puis la columinise à l'aide,.
et l'imprime à l'aide de la fonction intégréeecho
.la source
Pyth ,
181514 octetsEssayez-le ici!
Explication
Ceci est similaire à ma réponse en python.
Modifications :
la source
Noodel ,
1713 octets13 octets
J'ai essayé une approche légèrement différente et économisé 4 octets.
Essayez-le :)
Comment ça marche
17 octets
Essayez-le :)
Comment ça marche
L'extrait utilise les valeurs -4 à 4 afin de ne pas prendre autant de temps.
la source
TI-Basic, 22 octets
De nombreuses commandes sont représentées par des jetons de 1 ou 2 octets.
Testé sur une TI-84 CSE émulée.
la source
Matlab,
1623 octetsEdit: J'ai réalisé que je violais plusieurs des règles de ce défi. Cela m'apprendra à lire le défi tard le soir. Je me rends également compte maintenant que la réponse corrigée est presque identique à la solution Octave, mais telle est la vie.
Imprime chaque élément du tableau d'espace linéaire créé -1000: 1000 (le manque de; imprime sur la console).
tic / toc enregistre l'heure et toc imprime l'heure sur la console avec ou sans le; . 1e3 est nécessaire pour imprimer en millisecondes.
la source
Groovy,
7573 octetsMerci à jaxad0127 pour avoir économisé 2 octets!
Essayez-le ici!
la source
nanoTime
avec une division par 1e6 est plus courte quecurrentTimeMillis
. Il donne également un temps fractionné.8ème ,
6147 octetsMerci à 8th_dev pour une belle amélioration (économisé 14 octets)
Cela affichera tous les nombres entiers compris entre -1000 et 1000 dans l'ordre croissant et le temps nécessaire (en millisecondes) pour imprimer ces nombres
la source
Japt, 23 octets
Il existe deux solutions équivalentes:
Le premier fait essentiellement ce qui suit:
Autrement dit, les chiffres sont imprimés au milieu de la soustraction pour éviter d'avoir à stocker l'heure dans une variable. Cependant, il n'est pas plus court que l'itinéraire variable, qui est essentiellement:
Dans la dernière version de Japt (plus récente que ce défi),
K
est configurée pour revenir automatiquementnew Date()
. Cela réduit la première solution à 21 octets:Testez-le en ligne!
la source
QBIC , 34 octets
Utilise la
TIMER
fonction QBasic , qui renvoie des secondes en notation décimale. Le rendre joli ajoute quelques octets.Explication
la source
C ++ - 261
Juste pour rire, j'ai pensé publier une réponse en C ++.
Je vais le laisser comme un exercice pour déterminer ce qu'il fait et comment l'appeler - cela ne devrait pas être trop difficile.
la source
Scala, 77 octets
la source
ForceLang, 124
Remarque: vous devez supprimer
stderr
lors de l'exécution de cela. Je crois que le consensus sur la méta est que cela n'encourt pas de pénalité de comptage d'octets.la source
SimpleTemplate , 92 octets
Ce qui m'a vraiment tué, c'est la nécessité d'enregistrer le temps.
Puisqu'il n'y a pas (encore) de mathématiques, cela rend les choses assez difficiles, me forçant à écrire PHP directement.
Non golfé:
Avertissement:
J'ai exécuté cela avec la validation e118ae72c535b1fdbe1b80c847f52aa161854fda , du 2017-01-13.
Le dernier commit était de corriger quelque chose qui n'est pas lié au code ici.
la source
C
134133 octetsMerci à @Thomas Padron-McCarthy pour avoir économisé 1 octet.
Version non golfée:
la source
int t=time(null);
...printf("%d",time(null)-t)
? AFAIKGura , 75 octets
la source
Clojure, 94 octets
Je suis déçu du temps que cela a duré, mais je suppose que personne n'a jamais prétendu que Clojure était une bonne langue pour jouer au golf.
Solution naïve qui enregistre simplement l'heure de début, boucle, puis imprime l'heure actuelle moins l'heure de début. À moins que Clojure n'ait un getter ms-time que je manque, je ne sais pas comment cela pourrait être plus court. Peut-être une sorte de boucle implicite?
la source