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 papan peringkat bersama dengan beberapa informasi lebih lanjut tentang seri di posting pertama .
Lubang 8: Acak daftar yang tak terbatas
Anda harus menulis fungsi atau program yang menggunakan daftar tak terbatas sebagai input dan mengembalikan versi acak dari daftar itu.
Tentang infinite I / O
Ada beberapa cara Anda dapat mengambil input dan menghasilkan output untuk tantangan ini:
- Anda dapat mengambil daftar bilangan bulat positif, atau representasi stringnya, atau string atau daftar karakter ASCII yang dapat dicetak (0x20 hingga 0x7E, inklusif). Format output harus sesuai dengan format input. Saya hanya akan merujuk data sebagai "daftar" mulai sekarang, terlepas dari opsi mana yang Anda pilih.
- Anda dapat membaca daftar dari aliran input standar tak terbatas dan menulis output terus menerus ke aliran keluaran standar tak terbatas. Solusinya tidak harus bergantung pada nilai atau urutan nilai tertentu untuk memastikan bahwa aliran output secara tertulis dan memerah (misalnya Anda tidak bisa hanya menulis output setiap kali ada
5
dalam daftar input). Tentu saja, jika Anda membaca representasi string dari daftar, tidak apa-apa untuk menunggu sampai bertemu dengan pemisah daftar. - Dalam bahasa yang mendukungnya, Anda dapat menulis fungsi yang mengambil dan mengembalikan daftar atau string malas yang tak terbatas.
- Dalam bahasa yang mendukungnya, Anda dapat mengimplementasikan generator tanpa batas yang menggunakan generator lain sebagai input.
- Atau, Anda dapat menulis fungsi yang tidak menggunakan argumen dan mengembalikan satu nilai output setiap kali dipanggil. Dalam hal ini, Anda dapat mengasumsikan bahwa suatu fungsi telah didefinisikan yang tidak menggunakan argumen dan mengembalikan nilai input berikutnya setiap kali dipanggil. Anda dapat dengan bebas memilih nama fungsi itu.
Anda dapat mengasumsikan bahwa program Anda berjalan selamanya dan bahwa memori tak terbatas tersedia. (Dimungkinkan untuk menyelesaikan ini dengan jumlah memori yang terbatas, tetapi artinya ini adalah Anda diizinkan untuk membocorkan memori.)
Tentang keacakan
Untuk setiap nilai v yang dibaca pada posisi i dari input infinite, harus ada probabilitas positif untuk berakhir di posisi i-9 hingga i + 9 dari output infinite (kecuali posisi itu akan negatif ). Probabilitas ini tidak harus sama untuk posisi output yang berbeda atau bahkan untuk posisi input yang berbeda. Tidak masalah jika solusi Anda juga dapat mengocok nilai ke posisi lain yang lebih jauh.
Oleh karena itu, tidak perlu solusi Anda dapat mengocok nilai pertama sangat jauh ke bawah dalam daftar, atau bahwa itu dapat mengocok nilai yang sangat terlambat hingga ke posisi pertama, meskipun tidak apa-apa jika itu terjadi, selama semua posisi 9 langkah dari input dimungkinkan.
Misalnya jika Anda mengambil string berikut sebagai input, ini ___
mengindikasikan semua posisi yang X
harus dapat diakhiri dalam output:
___________________
abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz...
Jika bahasa Anda tidak memiliki penghasil angka acak bawaan atau Anda tidak ingin menggunakannya, Anda dapat mengambil nilai seed tambahan sebagai input, dan mengimplementasikan RNG Anda sendiri yang sesuai menggunakan seed. Halaman ini mungkin bermanfaat untuk itu.
Terlepas dari distribusi aktual yang digunakan solusi Anda, hampir pasti harus menghasilkan nilai berikutnya setelah waktu yang terbatas (tapi sewenang-wenang).
Harap sertakan penjelasan singkat tentang bagaimana implementasi Anda memenuhi persyaratan ini.
Mencetak gol
Ini adalah kode-golf , sehingga jawaban terpendek yang valid - diukur dalam byte - menang.
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 bisa 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.)