Podsumowanie
Napisz program lub funkcję, która nie pobiera żadnych danych wejściowych i wypisuje wszystkie liczby całkowite, od -1000 do 1000 w porządku rosnącym, na standardowe wyjście, po jednym w wierszu, jak poniżej:
-1000
-999
-998
-997
...
Następnie musisz wydrukować czas potrzebny na wydrukowanie tych liczb lub czas od początku uruchomienia programu w milisekundach (w razie potrzeby może on zawierać także inne rzeczy, na przykład: czas potrzebny: xxxms jest w porządku). Może to być liczba zmiennoprzecinkowa lub liczba całkowita (jeśli wypisujesz liczbę całkowitą, musisz zaokrąglić w dół do najbliższej wartości).
Przykładowy kod
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);
}
}
Ograniczenia
Standardowe luki są niedozwolone
Inne informacje
To jest golf golfowy, więc wygrywa najkrótsze zgłoszenie.
Odpowiedzi:
MATL , 13 bajtów
Wypróbuj online!
źródło
Implicitly start timer
. Czy było to od pierwszego dnia, czy jest to wynik wcześniejszego wyzwania?Oktawa,
4643363023 bajtówSpowoduje to wydrukowanie:
Jeśli ci się nie podoba
ans =
, musimy dodać dodatkowe 6 bajtów dladisp
:Zaoszczędzono wiele bajtów dzięki kilku przypomnieniom z rahnema1.
Wyjaśnienie:
źródło
JavaScript, 60 bajtów
Aby zarejestrować wszystkie zdarzenia, należy użyć skryptu z konsoli programisty (w przeciwnym razie dzienniki zostaną usunięte po określonej liczbie).
źródło
i=~1e3
by uratować bajt :-)CJam , 18 bajtów
Wypróbuj online!
Jak to działa
źródło
Python 3.5,
807773 bajtówPoprzednie rozwiązania obejmowały użycie
timeit
itime.time()
były większe.Niestety,
time.process_time()
został wprowadzony w Pythonie 3.3.Dzięki Dennisowi za oszczędność 4 bajtów!
źródło
Bash (+ coreutils),
41,49,46,44, 42 bajtyEDYCJE:
|&
do przekierowania stderr;seq -1000 1000
jeseq -1e3 1e3
(Dzięki @Dennis!);Grał w golfa
Wypróbuj online!
Dygresja
Użycie narzędzia coreutils „time” zamiast wbudowanego w Bash daje w wyniku
41, Rozwiązanie 35-bajtowe:„\” jest tutaj, aby bash wywoływał prawdziwe polecenie zamiast wbudowanego.
Niestety dokładność czasowa coreutils wynosi tylko 1/100 s, co wzbudziło obawy, czy jest to prawidłowe rozwiązanie.
źródło
R, 42 bajty
To zostanie wydrukowane
Aby usunąć
elapsed
, potrzebne są dwa dodatkowe bajty:źródło
Narzędzia Bash + GNU, 43
date
Komenda daje liczbę sekund od epoki połączonego z aktualnymi nanosekund. To polecenie jest uruchamiane przed i po.bc
bierze różnicę i drukuje.Wypróbuj online .
Miałem nadzieję, że zrobię to przez 17 lat:
Ale wynik czasu daje więcej niż potrzebujemy:
źródło
1000
je1e3
.date +%s%3N
.JavaScript (ES6),
6359 bajtówźródło
new (d=Date)
i rozpoczynając od -1000:for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
~1e3
to świetny akcent.952
do1000
dlaczego tak jest?performance.now()
aniPerformance
wcaleR, 66 bajtów
Prawdopodobnie nie najkrótszy, ale działa.
źródło
proc.time
być przechowywany w zmiennej?t=proc.time;x=t(); ...
Mathematica, 51 bajtów
Wyjaśnienie
Zapisz
Print
funkcję wp
. Wydrukuj liczby 2001, zaczynając od -1000, zwiększając o 1.Znajdź całkowity czas, który upłynął w sekundach.
Pomnóż to przez 1000 (sekund -> milisekund) i
p
(Print
).źródło
Timing
nie spełniasz również (nieco niejasnego) opisu problemuAbsoluteTiming
?Timing
generuje czas procesora i nie uwzględnia czasu zajętego przez interfejs użytkownika. To jest. czas potrzebny na zwiększenie licznikaArray
jest liczony, ale czas wyświetlany na ekranie tych liczb nie jest liczony. Efekt ten można zobaczyć w tym prostym przykładzie:Timing@Print@3
daje 0 sekund, aleAbsoluteTiming@Print@3
nie daje.PHP,
11070 bajtówwciąż trochę długi; ale uratował 38 dzięki podpowiedzi @ AlexHowansky'ego, a dwa kolejne dzięki
1e3
i~1e3
.drukuje pływak. Uruchom z
-r
.źródło
PowerShell, 27 bajtów
Dzięki AdmBorkBork za zwrócenie uwagi, że pełne wyzwanie jest możliwe w wyzwaniu.
Wyniki wyjściowe takie jak:
aby uzyskać bardziej zawarty wynik zaledwie milisekund, użyj oryginalnej odpowiedzi:
Zaoszczędź czas wcześniej jako 1 $, wydrukuj automatycznie na standardowe wyjście, a następnie uzyskaj czas od początku do końca wykonania.
źródło
oh
(Out-Host
), co ominie fakt, któryMeasure-Command
przechwytuje potok. Przykład w TIOMeasure-Command{-1e3..1e3|oh}
ma 29 bajtów. Jasne, drukuje dodatkowe rzeczy dziękiMeasure-Command
, ale wyzwanie wyraźnie stwierdza, że jest OK.$1=date;-1e3..1e3;(date)-$1
jest tam również o 2 bajty krótszy niż opcja pomiaru-polecenia,Perl 6 , 45 bajtów
Spróbuj
Rozszerzony:
źródło
J , 22 bajty
Wypróbuj online!
timex
to wbudowane narzędzie, które wykonuje ciąg znaków i zwraca czas potrzebny do jego oceny w kilka sekund. Ciąg tworzy zakres [-1000, 1000] za pomocąi:
, a następnie kolonizuje za pomocą,.
i drukuje za pomocą wbudowanegoecho
.źródło
Pyth ,
181514 bajtówWypróbuj tutaj!
Wyjaśnienie
Jest to podobne do mojej odpowiedzi w python.
Edycje :
źródło
Noodel ,
1713 bajtów13 bajtów
Próbowałem nieco innego podejścia i zapisałem 4 bajty.
Spróbuj:)
Jak to działa
17 bajtów
Spróbuj:)
Jak to działa
Fragment używa wartości od -4 do 4, aby jego wypełnienie nie trwało tak długo.
źródło
TI-Basic, 22 bajty
Wiele poleceń jest reprezentowanych przez 1 lub 2-bajtowe tokeny.
Testowany na emulowanym TI-84 CSE.
źródło
Matlab,
1623 bajtówEdycja: Zrozumiałem, że naruszam kilka zasad tego wyzwania. To nauczy mnie przeglądać wyzwanie późno w nocy. Teraz też zdaję sobie sprawę, że poprawiona odpowiedź jest prawie identyczna z rozwiązaniem Octave, ale takie jest życie.
Drukuje każdy element w utworzonej liniowej tablicy przestrzeni -1000: 1000 (brak; drukuje na konsolę).
tic / toc rejestruje czas, a toc drukuje czas na konsoli z lub bez; . 1e3 jest potrzebny do drukowania w milisekundach.
źródło
Groovy,
7573 bajtówDzięki jaxad0127 za zapisanie 2 bajtów!
Wypróbuj tutaj!
źródło
nanoTime
z dzieleniem przez 1e6 jest krótszy niżcurrentTimeMillis
. Daje również czas ułamkowy.8th ,
6147 bajtówPodziękowania dla 8th_dev za miłą poprawę (zapisane 14 bajtów)
Spowoduje to wydrukowanie wszystkich liczb całkowitych od -1000 do 1000 w kolejności rosnącej oraz czas (w milisekundach) potrzebny do wydrukowania tych liczb
źródło
Japt, 23 bajty
Istnieją dwa równoważne rozwiązania:
Pierwszy zasadniczo wykonuje następujące czynności:
Oznacza to, że liczby są drukowane w środku odejmowania, aby uniknąć konieczności przechowywania czasu w zmiennej. Jednak nie jest on krótszy niż trasa zmienna, która w zasadzie jest:
W najnowszej wersji Japt (nowszej niż to wyzwanie)
K
jest skonfigurowany do automatycznego powrotunew Date()
. To skraca pierwsze rozwiązanie do 21 bajtów:Przetestuj online!
źródło
QBIC , 34 bajty
Korzysta z
TIMER
funkcji QBasic , która zwraca sekundy w notacji dziesiętnej. Sprawia, że wygląda ładnie, dodaje kilka bajtów.Wyjaśnienie
źródło
C ++ - 261
Tylko dla śmiechu myślałem, że opublikuję odpowiedź w C ++.
Zostawię to jako ćwiczenie, aby ustalić, co robi i jak to nazwać - nie powinno być zbyt trudne.
źródło
Scala, 77 bajtów
źródło
ForceLang, 124
Uwaga: należy wyłączyć
stderr
podczas uruchamiania. Uważam, że konsensus w sprawie meta jest taki, że nie wiąże się to z karą za liczenie bajtów.źródło
SimpleTemplate , 92 bajty
To, co naprawdę mnie zabiło, to konieczność rejestrowania czasu.
Ponieważ nie ma (jeszcze) matematyki, to sprawia, że jest to dość trudne, zmuszając mnie do pisania PHP bezpośrednio.
Nie golfowany:
Zrzeczenie się:
Uruchomiłem to z zatwierdzeniem e118ae72c535b1fdbe1b80c847f52aa161854fda , od 13.01.2017 .
Najnowszym zatwierdzeniem było naprawienie czegoś, co nie jest związane z kodem tutaj.
źródło
C
134133 bajtówDzięki @Thomas Padron-McCarthy za uratowanie 1 bajtu.
Wersja bez golfa:
źródło
int t=time(null);
...printf("%d",time(null)-t)
? Krótszy AFAIKGura , 75 bajtów
źródło
Clojure, 94 bajty
Jestem rozczarowany, jak długo to trwało, ale chyba nikt nigdy nie twierdził, że Clojure jest dobrym językiem do gry w golfa.
Naiwne rozwiązanie, które rejestruje czas rozpoczęcia, zapętla, a następnie drukuje aktualny czas minus czas rozpoczęcia. Chyba że Clojure ma getter czasu ms niż brakuje mi, nie wiem jak to może być krótsze. Może jakaś ukryta pętla?
źródło