Ringkasan
Tulis sebuah program atau fungsi, yang tidak mengambil input apa pun, dan menampilkan semua bilangan bulat, antara -1000 dan 1000 dalam urutan naik, ke stdout, satu per baris, seperti ini:
-1000
-999
-998
-997
...
Dan setelah itu Anda perlu mencetak waktu yang diperlukan untuk mencetak angka-angka ini, atau waktu dari awal pelaksanaan program dalam milidetik (jika perlu, juga dapat berisi beberapa hal lain, misalnya: waktu yang diambil: xxxms ok). Ini bisa berupa pelampung, atau bilangan bulat (jika Anda mencetak bilangan bulat, Anda harus membulatkan ke yang terdekat).
Kode contoh
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);
}
}
Batasan
Tidak ada celah standar
Info lainnya
Ini kode golf, jadi pengiriman terpendek menang.
Jawaban:
MATL , 13 byte
Cobalah online!
sumber
Implicitly start timer
. Apakah itu ada sejak hari pertama, atau apakah itu hasil dari tantangan sebelumnya?Oktaf,
4643363023 byteIni akan mencetak:
Jika Anda tidak suka
ans =
, maka kami harus menambahkan 6 byte tambahan untukdisp
:Menyimpan banyak byte berkat beberapa pengingat dari rahnema1.
Penjelasan:
sumber
JavaScript, 60 byte
Untuk mendapatkan semua peristiwa dicatat, Anda harus menggunakan skrip dari konsol pengembang (jika tidak, log dihapus setelah jumlah tertentu dari mereka).
sumber
i=~1e3
untuk menyimpan byte :-)CJam , 18 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 3.5,
807773 byteSolusi sebelumnya melibatkan penggunaan
timeit
dantime.time()
, mereka lebih besar.Sedihnya,
time.process_time()
diperkenalkan di python 3.3.Terima kasih kepada Dennis karena telah menghemat 4 byte!
sumber
Bash (+ coreutils),
41,49,46,44, 42 byteEDIT:
|&
untuk pengalihan stderr;seq -1000 1000
denganseq -1e3 1e3
(Terima kasih @ Dennis!);Golf
Cobalah secara Online!
Sidenote
Menggunakan utilitas "waktu" coreutils, bukannya Bash-builtin, menghasilkan a
41, Solusi 35 byte:"\" ada di sini untuk membuat bash memanggil perintah sebenarnya, bukan builtin.
Sayangnya presisi waktu coreutils hanya 1/100, yang telah menimbulkan kekhawatiran jika itu adalah solusi yang valid.
sumber
R, 42 byte
Ini akan dicetak
Untuk menghapus
elapsed
, diperlukan dua byte tambahan:sumber
Utilitas Bash + GNU, 43
The
date
perintah memberikan jumlah detik sejak zaman bersambung dengan nanodetik saat ini. Perintah ini dijalankan sebelum dan sesudah.bc
mengambil perbedaan dan mencetak.Cobalah online .
Saya berharap untuk melakukan ini selama 17:
Tetapi keluaran waktu memberi lebih dari yang kita butuhkan:
sumber
1000
dengan1e3
.date +%s%3N
.JavaScript (ES6),
6359 bytesumber
new (d=Date)
dan mulai dari -1000:for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
~1e3
ini adalah sentuhan yang bagus.952
untuk1000
mengapa demikian?performance.now()
atauPerformance
antarmuka sama sekaliR, 66 byte
Mungkin bukan yang terpendek tetapi berhasil.
sumber
proc.time
disimpan dalam variabel?t=proc.time;x=t(); ...
Mathematica, 51 byte
Penjelasan
Simpan
Print
fungsi dip
. Cetak angka 2001, mulai dari -1000, bertambah 1.Temukan total waktu yang telah berlalu dalam hitungan detik.
Lipat gandakan dengan 1000 (detik -> milidetik) dan
p
(Print
) itu.sumber
Timing
tidak memenuhi deskripsi masalah (sedikit kabur) jugaAbsoluteTiming
?Timing
menampilkan waktu CPU dan tidak termasuk waktu yang diambil oleh ujung depan. Itu adalah. waktu yang dibutuhkan untuk menambah penghitung masukArray
dihitung, tetapi waktu yang dibutuhkan untuk menampilkan angka-angka itu di layar tidak dihitung. Efek ini dapat dilihat pada contoh sederhana ini:Timing@Print@3
memberikan 0 detik, tetapiAbsoluteTiming@Print@3
tidak.PHP,
11070 bytemasih agak panjang; tetapi disimpan 38 dengan petunjuk @ AlexHowansky, dan dua lagi dengan
1e3
dan~1e3
.cetakan mengapung. Jalankan dengan
-r
.sumber
Powershell, 27 Bytes
Terima kasih kepada AdmBorkBork karena menunjukkan bahwa keluaran default verbose dapat diterima dalam tantangan.
Hasil keluaran seperti:
untuk hasil yang lebih berisi hanya milidetik, gunakan jawaban asli:
Hemat waktu sebelum $ 1, cetak ke stdout secara otomatis, lalu dapatkan waktu antara awal dan akhir eksekusi.
sumber
oh
(Out-Host
) yang akan mem-bypass fakta yangMeasure-Command
menangkap pipa. Contoh di TIOMeasure-Command{-1e3..1e3|oh}
adalah 29 byte. Tentu, ini mencetak hal-hal tambahan berkatMeasure-Command
, tetapi tantangannya secara eksplisit menyatakan tidak apa-apa.$1=date;-1e3..1e3;(date)-$1
2 byte lebih pendek dari opsi ukuran-perintah di sana,Perl 6 , 45 byte
Cobalah
Diperluas:
sumber
J , 22 byte
Cobalah online!
timex
adalah builtin yang mengeksekusi string dan mengembalikan waktu yang dibutuhkan untuk mengevaluasinya dalam hitungan detik. String membentuk rentang [-1000, 1000] yang digunakani:
, lalu mengelompokkannya menggunakan,.
, dan mencetaknya menggunakan builtinecho
.sumber
Pyth ,
181514 byteCoba di sini!
Penjelasan
Ini mirip dengan jawaban python saya.
Suntingan :
sumber
Noodel ,
1713 byte13 byte
Mencoba pendekatan yang sedikit berbeda dan menyimpan 4 byte.
Cobalah:)
Bagaimana itu bekerja
17 byte
Cobalah:)
Bagaimana itu bekerja
Cuplikan menggunakan nilai -4 hingga 4 agar tidak terlalu lama untuk diselesaikan.
sumber
TI-Basic, 22 byte
Banyak perintah diwakili oleh token 1 atau 2 byte.
Diuji pada TI-84 CSE yang ditiru.
sumber
Matlab,
1623 BytesSunting: Saya menyadari saya melanggar beberapa peraturan tantangan ini. Itu akan mengajari saya membaca skim tantangan larut malam. Saya juga sekarang menyadari bahwa jawaban yang dikoreksi hampir identik dengan solusi Oktaf, tetapi itulah kehidupan.
Mencetak setiap elemen dalam array ruang linear yang dibuat -1000: 1000 (tidak adanya; cetakan untuk konsol).
tic / toc merekam waktu dan toc mencetak waktu ke konsol dengan atau tanpa; . 1e3 diperlukan untuk mencetak dalam milidetik.
sumber
Groovy,
7573 byteTerima kasih kepada jaxad0127 untuk menghemat 2 byte!
Coba di sini!
sumber
nanoTime
dengan pembagian dengan 1e6 lebih pendek daricurrentTimeMillis
. Ini juga memberikan waktu fraksional.8 ,
6147 byteTerima kasih kepada 8th_dev untuk peningkatan yang bagus (disimpan 14 byte)
Ini akan mencetak semua angka bilangan bulat antara -1000 dan 1000 dalam urutan menaik dan waktu yang dibutuhkan (dalam milidetik) untuk mencetak angka-angka ini
sumber
Japt, 23 byte
Ada dua solusi yang setara:
Yang pertama pada dasarnya melakukan hal berikut:
Artinya, angka-angka dicetak di tengah pengurangan untuk menghindari keharusan menyimpan waktu dalam variabel. Namun, tidak lebih pendek dari rute variabel, yang pada dasarnya adalah:
Dalam versi terbaru dari Japt (lebih baru dari tantangan ini),
K
diatur untuk secara otomatis kembalinew Date()
. Ini memotong solusi pertama menjadi 21 byte:Uji secara online!
sumber
QBIC , 34 byte
Menggunakan
TIMER
fungsi QBasic , yang mengembalikan detik dalam notasi desimal. Membuatnya terlihat cantik menambah beberapa byte.Penjelasan
sumber
C ++ - 261
Hanya untuk tertawa saya pikir saya akan mengirim jawaban C ++.
Saya akan meninggalkannya sebagai latihan untuk menentukan apa yang dilakukannya dan bagaimana menyebutnya - seharusnya tidak terlalu sulit.
sumber
Scala, 77 byte
sumber
ForceLang, 124
Catatan: Anda harus menekan
stderr
saat menjalankan ini. Saya percaya konsensus tentang meta adalah bahwa ini tidak dikenakan penalti jumlah byte.sumber
SimpleTemplate , 92 byte
Yang benar-benar membunuh saya adalah kebutuhan untuk mencatat waktu.
Karena tidak ada matematika (belum), ini membuat semuanya sangat sulit, memaksa saya untuk menulis PHP secara langsung.
Tidak Disatukan:
Penolakan:
Saya telah menjalankan ini dengan commit e118ae72c535b1fdbe1b80c847f52aa161854fda , dari 2017-01-13.
Komit terbaru adalah untuk memperbaiki sesuatu yang tidak terkait dengan kode di sini.
sumber
C
134133 byteTerima kasih kepada @Thomas Padron-McCarthy karena telah menghemat 1 byte.
Versi tidak disatukan:
sumber
int t=time(null);
...printf("%d",time(null)-t)
? Shorter AFAIKGura , 75 byte
sumber
Clojure, 94 byte
Saya kecewa dengan berapa lama ini terjadi, tapi saya kira tidak ada yang pernah mengklaim Clojure adalah bahasa yang baik untuk bermain golf.
Solusi naif yang hanya mencatat waktu mulai, loop, kemudian mencetak waktu saat ini dikurangi waktu mulai. Kecuali Clojure memiliki getter MS-time daripada saya hilang, saya tidak tahu bagaimana ini bisa lebih pendek. Mungkin semacam loop implisit?
sumber