Резюме
Напишите программу или функцию, которая не принимает никаких входных данных и выводит все целые числа в диапазоне от -1000 до 1000 в порядке возрастания в стандартный вывод, по одному на строку, например:
-1000
-999
-998
-997
...
И после этого вам нужно распечатать время, затраченное на печать этих чисел, или время с начала выполнения программы в миллисекундах (если необходимо, оно может также содержать некоторые другие вещи, например: время взято: xxxms в порядке). Это может быть число с плавающей точкой или целое число (если вы печатаете целое число, вам нужно округлить до ближайшего).
Пример кода
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);
}
}
ограничения
Стандартные лазейки не допускаются
Другая информация
Это код гольф, поэтому выигрывает самое короткое представление.
Ответы:
MATL , 13 байт
Попробуйте онлайн!
источник
Implicitly start timer
. Это было с первого дня, или это результат более раннего испытания?Октава,
4643363023 байтаЭто напечатает:
Если вам не нравится
ans =
, то мы должны добавить дополнительные 6 байтов дляdisp
:Сохранено много байтов благодаря нескольким напоминаниям от rahnema1.
Объяснение:
источник
JavaScript, 60 байт
Для регистрации всех событий вы должны использовать скрипт из консоли разработчика (в противном случае журналы удаляются после определенного количества).
источник
i=~1e3
сохранить байт :-)CJam , 18 байт
Попробуйте онлайн!
Как это устроено
источник
Python 3.5,
807773 байтаПредыдущие решения были связаны с использованием,
timeit
иtime.time()
они были больше.К сожалению,
time.process_time()
был введен в Python 3.3.Спасибо Деннису за сохранение 4 байта!
источник
Bash (+ coreutils),
41,49,46,4442 байтаправок:
|&
для перенаправления stderr;seq -1000 1000
наseq -1e3 1e3
(Спасибо @Dennis!);Golfed
Попробуйте онлайн!
Примечание
Использование утилиты coreutils «time» вместо встроенной Bash приводит к
4135-байтовое решение:«\» здесь, чтобы заставить bash вызывать настоящую команду вместо встроенной.
К сожалению, точность времени coreutils составляет всего 1/100 с, что вызывает опасения, если это правильное решение.
источник
R, 42 байта
Это напечатает
Для удаления необходимы
elapsed
два дополнительных байта:источник
Утилиты Bash + GNU, 43
Команда
date
выдает количество секунд, прошедших с тех пор, как эпоха соединилась с текущими наносекундами. Эта команда выполняется до и после.bc
берет разницу и печатает.Попробуйте онлайн .
Я надеялся сделать это для 17:
Но вывод времени дает больше, чем нам нужно:
источник
1000
на1e3
.date +%s%3N
.JavaScript (ES6),
6359 байтисточник
new (d=Date)
и начав с -1000:for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
~1e3
это отличный штрих.952
для1000
чего это?performance.now()
илиPerformance
интерфейс вообщеR, 66 байт
Вероятно, не самый короткий, но это работает.
источник
proc.time
храниться в переменной?t=proc.time;x=t(); ...
Mathematica, 51 байт
объяснение
Сохраните
Print
функцию вp
. Выведите числа 2001 года, начиная с -1000, с шагом 1.Найти общее время, прошедшее в секундах.
Умножьте это на 1000 (секунды -> миллисекунды) и
p
(Print
).источник
Timing
что не удовлетворяет (слегка расплывчатому) описанию проблемы, а такжеAbsoluteTiming
?Timing
выводит процессорное время и не включает время, затрачиваемое внешним интерфейсом. То есть.Array
отсчитывается время, необходимое для увеличения счетчика , но время, необходимое для отображения этих чисел на экране, не учитывается. Этот эффект можно увидеть в этом простом примере:Timing@Print@3
дает 0 секунд, ноAbsoluteTiming@Print@3
не дает.PHP,
11070 байтеще немного долго; но спас 38 с подсказкой @ AlexHowansky, и еще два с
1e3
и~1e3
.принты плавают. Беги с
-r
.источник
Powershell, 27 байт
Спасибо AdmBorkBork за указание на то, что подробный вывод по умолчанию является приемлемым в задаче.
Результат такой как:
для более содержательного результата всего за миллисекунды используйте оригинальный ответ:
Сохраните время до $ 1, распечатайте на стандартный вывод автоматически, затем получите время между началом и концом выполнения.
источник
oh
(Out-Host
), что обойдет тот факт, чтоMeasure-Command
захватывает конвейер. Пример наMeasure-Command{-1e3..1e3|oh}
составляет 29 байт. Конечно, он печатает лишние вещи благодаряMeasure-Command
, но задача явно заявляет, что все в порядке.$1=date;-1e3..1e3;(date)-$1
на 2 байта короче, чем опция измерения команды,Perl 6 , 45 байт
Попытайся
Expanded:
источник
J , 22 байта
Попробуйте онлайн!
timex
является встроенным, который выполняет строку и возвращает время, необходимое для ее оценки в секундах. Строка формирует диапазон [-1000, 1000], используяi:
, затем колулизирует его, используя,.
, и печатает его, используя встроенную функциюecho
.источник
Pyth ,
181514 байтовПопробуй это здесь!
объяснение
Это похоже на мой ответ Python.
Редактирует :
источник
Noodel ,
1713 байтов13 байт
Попробовал немного другой подход и сэкономил 4 байта.
Попытайся:)
Как это устроено
17 байт
Попытайся:)
Как это устроено
Фрагмент использует значения от -4 до 4, чтобы не занимать много времени.
источник
TI-Basic, 22 байта
Многие команды представлены 1 или 2-байтовыми токенами.
Испытано на эмулированной TI-84 CSE.
источник
Matlab,
1623 байтаИзменить: я понял, что нарушил несколько правил этого испытания. Это научит меня читать задание поздно ночью. Теперь я также понимаю, что исправленный ответ почти идентичен решению Octave, но такова жизнь.
Печатает каждый элемент в созданном массиве линейных пространств -1000: 1000 (отсутствие; вывод на консоль).
tic / toc записывает время и toc выводит время на консоль с или без; , 1e3 необходим для печати в миллисекундах.
источник
Groovy,
7573 байтаСпасибо jaxad0127 за сохранение 2 байта!
Попробуй это здесь!
источник
nanoTime
с делением на 1e6 меньше чемcurrentTimeMillis
. Это также дает дробное время.8-е ,
6147 байтСпасибо 8th_dev за хорошее улучшение (сэкономлено 14 байт)
При этом будут напечатаны все целые числа в диапазоне от -1000 до 1000 в порядке возрастания, а также время (в миллисекундах) для печати этих чисел.
источник
Japt, 23 байта
Есть два эквивалентных решения:
Первый в основном делает следующее:
То есть числа печатаются в середине вычитания, чтобы избежать необходимости сохранять время в переменной. Тем не менее, он не короче, чем переменная route, которая в основном:
В последней версии Japt (новее, чем этот вызов),
K
настроен на автоматический возвратnew Date()
. Это сокращает первое решение до 21 байта:Проверьте это онлайн!
источник
QBIC , 34 байта
Использует
TIMER
функцию QBasic , которая возвращает секунды в десятичной записи. Делая это выглядит красиво добавляет несколько байтов.объяснение
источник
С ++ - 261
Просто для смеха я думал, что выложу ответ C ++.
Я оставлю это как упражнение, чтобы определить, что он делает и как его назвать - не должно быть слишком сложно.
источник
Scala, 77 байт
источник
ForceLang, 124
Примечание: вы должны подавить
stderr
при запуске этого. Я считаю, что консенсус в отношении мета заключается в том, что это не повлечет за собой штраф за счет байтов.источник
SimpleTemplate , 92 байта
Что действительно убило меня, так это необходимость записать время.
Поскольку математики нет (пока), это усложняет ситуацию, заставляя меня писать PHP напрямую.
Ungolfed:
Отказ от ответственности:
Я запускал это с коммитом e118ae72c535b1fdbe1b80c847f52aa161854fda , от 2017-01-13.
Последний коммит заключался в исправлении чего-то, что не имеет отношения к коду здесь.
источник
C
134133 байтаСпасибо @Thomas Padron-McCarthy за сохранение 1 байта.
Безголовая версия:
источник
int t=time(null);
...printf("%d",time(null)-t)
? КорочеГура , 75 байт
источник
Clojure, 94 байта
Я разочарован тем, как долго это продолжалось, но я думаю, никто никогда не утверждал, что Clojure был хорошим языком для игры в гольф.
Наивное решение, которое просто записывает время начала, зацикливает, а затем печатает текущее время минус время начала. Если у Clojure нет получателя мс-времени, чем я пропускаю, я не знаю, как это могло бы стать короче. Может быть, какая-то неявная петля?
источник