Tentang Seri
Pertama, Anda dapat memperlakukan ini seperti tantangan golf kode lainnya, dan menjawabnya tanpa khawatir tentang seri sama sekali. Namun, ada papan peringkat di semua tantangan. Anda dapat menemukan leaderboard bersama dengan beberapa informasi lebih lanjut tentang seri di posting pertama .
Meskipun saya memiliki banyak ide untuk seri ini, tantangan di masa depan belum ditetapkan. Jika Anda memiliki saran, beri tahu saya di pos kotak pasir yang relevan .
Lubang 2: Angka dari Distribusi Normal
Saya tidak percaya ini belum dilakukan! Anda akan menghasilkan angka acak, menggambar dari distribusi normal . Beberapa aturan (mayoritas dari mereka mungkin secara otomatis tercakup oleh sebagian besar penyerahan, tetapi beberapa dari mereka ada untuk memastikan konsistensi hasil antara bahasa yang sangat berbeda):
Anda harus mengambil dua bilangan bulat non-negatif sebagai input : satu seed
S
dan jumlahN
angka yang akan dikembalikan. Outputnya harus berupa daftarN
angka floating point, diambil dari distribusi normal dengan rata - rata 0 dan varians 1 . Setiap kali kiriman Anda diberikan benih yang sama,S
ia harus menghasilkan nomor yang sama. Secara khusus, jika itu dipanggil sekali dengan dan sekali dengan , entri pertama dari dua output harus identik. Selain itu, setidaknya 2 16 nilai yang berbeda harus menghasilkan urutan yang berbeda.(S, N1)
(S, N2)
min(N1, N2)
S
Anda dapat menggunakan penghasil bilangan acak bawaan apa pun yang didokumentasikan untuk menarik bilangan dari distribusi seragam (kira-kira) , asalkan Anda dapat meneruskannya
S
dan mendukung setidaknya 16 16 benih yang berbeda. Jika ya, RNG harus dapat mengembalikan setidaknya 20 nilai yang berbeda untuk setiap nomor yang Anda minta darinya.- Jika seragam RNG Anda yang tersedia memiliki rentang yang lebih kecil, tidak dapat diunggulkan, atau mendukung terlalu sedikit benih, Anda harus terlebih dahulu membangun RNG seragam dengan rentang yang cukup besar di atas bawaan atau Anda harus menerapkan RNG Anda sendiri menggunakan biji. Halaman ini mungkin bermanfaat untuk itu.
- Jika Anda tidak menerapkan algoritma yang ditetapkan untuk menghasilkan distribusi normal, harap sertakan bukti kebenaran. Dalam kedua kasus tersebut, algoritma yang Anda pilih harus menghasilkan distribusi normal yang tepat secara teoritis (kecuali pembatasan PRNG yang mendasari atau tipe data presisi terbatas).
- Implementasi Anda harus menggunakan dan mengembalikan angka floating-point (lebar minimal 32 bit) atau angka fixed-point (setidaknya lebar 24 bit) dan semua operasi aritmatika harus menggunakan lebar penuh dari tipe yang dipilih.
- Anda tidak boleh menggunakan fungsi bawaan apa pun yang terkait langsung dengan distribusi normal atau integral Gaussian, seperti fungsi Galat atau kebalikannya.
Anda dapat menulis program atau fungsi lengkap dan mengambil input melalui STDIN, argumen baris perintah, argumen fungsi atau prompt dan menghasilkan output melalui nilai balik atau dengan mencetak ke STDOUT (atau alternatif terdekat).
S
dan N
akan menjadi bilangan bulat non-negatif, masing-masing kurang dari 20 . Output mungkin dalam format string atau daftar yang mudah, tidak ambigu.
Ini adalah kode golf, jadi pengiriman terpendek (dalam byte) menang. Dan tentu saja, pengiriman terpendek per pengguna juga akan masuk ke papan peringkat keseluruhan seri.
Papan peringkat
Posting pertama dari seri menghasilkan leaderboard.
Untuk memastikan jawaban Anda muncul, mulailah setiap jawaban dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
(Bahasa saat ini tidak ditampilkan, tetapi cuplikan memang membutuhkan dan menguraikannya, dan saya dapat menambahkan leaderboard berdasarkan bahasa di masa mendatang.)