Tantangan:
Dalam skenario hipotetis, penghitung waktu mundur untuk suatu perlombaan memiliki interval acak antara penghitungan, untuk mencegah permulaan yang prematur, misalnya
3 (0.82 seconds pass), 2 (0.67 seconds pass), 1
Memasukkan:
tidak ada
Keluaran:
Tulis program (atau fungsi) yang mencetak 3 angka dengan interval waktu acak dari 0,50 detik hingga 1 detik di antara setiap hitungan.
catatan:
- Program keharusan keluaran setiap nomor (3, 2, 1) dengan acak ( setiap angka antara 0,50 dan 1 ke seratus, tidak ada hard-coding) interval waktu antara masing-masing. Ketepatan interval acak harus mencapai ratusan (misalnya: 0,52). Anda tidak diharuskan untuk mengeluarkan interval, hanya hitungan.
- Seperti yang diklarifikasi oleh @JoKing, maksud saya seragam acak (Anda dapat menggunakan generator pseudo-acak bahasa Anda.
- Seperti yang banyak orang jelaskan, maksud saya adalah angka 2-desimal antara 0,5 dan 1. (0,50, 0,51, dll, hingga 0,98, 0,99, 1)
Ini adalah kode-golf , sehingga program dengan jumlah byte terendah menang.
Jawaban:
05AB1E , 12 byte
Cobalah online!
Cobalah dengan debug diaktifkan: Cobalah online!
sumber
SmileBASIC,
6462 byteSayangnya saya tidak dapat menggunakan WAIT karena hanya mendukung interval 1/60 detik (hal yang biasanya tidak berguna karena input / output hanya diperbarui sekali per frame)
Ini memerlukan penyesuaian tergantung pada kecepatan sistem yang sedang dihidupkan, sehingga mungkin tidak valid (46 byte):
Versi WAIT tidak valid (36 byte):
sumber
R ,
4644 byteuntuk hitungan mundur aktual:
Cobalah online!
interval pencetakan karena saya awalnya salah memahami tantangan (46 byte) Terima kasih Giuseppe untuk menghemat 2 karakter.
Cobalah online!
sumber
runif()
secara default memiliki endpoint kiri dan kanan sebagai0
dan1
masing - masing, jadirunif(1,.5)
harus bekerja sama untuk -2 byte di keduanya.Python 2 , 58 byte
Cobalah online!
Saya membuat generator angka acak yang sangat sederhana yang membutuhkan waktu semaian (seperti yang dilakukan banyak orang).
Perbaikan
sumber
1-time()%.5
harus melakukan trik. (Anda memerlukannya[3,2,1]
)for a in'321'
menyimpan dua lagiAPL + WIN, 37 byte
sumber
Java 8, 86 byte
Mencetak tanpa pembatas. Jika itu tidak diizinkan +2 byte dengan mengubah
print
keprintln
(pembatas baris baru).Cobalah online.
Buktikan interval berada dalam kisaran
[500, 1000)
ms yang benar.Penjelasan:
sumber
Python 3, 122 byte
Cobalah online!
sumber
JavaScript (Node.js) ,
756560 byteCobalah online!
sumber
*1000%500+500
? Anda bisa menggunakannya*500+500
.Perl 5 , 39 byte
Secara bertahap mengubah menjadi 39 byte, terima kasih kepada @ jonathan-allan + @xcali.
Cobalah online!
sumber
1-rand(.5)
bekerja?1-rand.5
juga.Chip
-wingjj
, 33 byteCobalah online!
Dalam Chip, kita tidak bisa menunggu untuk persis 1 / 100 detik, tapi kami bisa menunggu 1 / 256 detik, jadi kami menggunakan itu di sini.
p
, Ketika ditanya, akan menghentikan sementara eksekusi untuk kepala stack (satu byte) * 1 / 256 detik. Pada setiap siklus, kami selalu mengatur bit tinggi stack ( 128 / 256 ) dan mengatur semua bit tumpukan lainnya secara acak (dengan?
's). Ini memberikan distribusi yang merata antara 0,50 dan 1,00 detik.Beberapa argumen,
-w
dan-gjj
, tentukan bahwa input, alih-alih menggunakan stdin, harus berupa hitungan mundur dari0xFF
ke0x00
(lalu membungkus). Kami menggunakan ini untuk memberikan dua bit rendah untuk penghitungan mundur. Semua bit output lainnya tetap konstan (pada nilai yang sesuai dengan ASCII0
).Akhirnya, setelah selesai, kami mengakhiri program dengan
t
, mencegah jeda setelah nomor terakhir.sumber
[GAWK], 57 byte
Cobalah online!
sumber