Beberapa waktu lalu saya menggunakan alat seq-like untuk mencetak urutan nomor acak pseudo yang dihasilkan ke stdout. Anda bisa menentukan rentang, benih, dan jumlah sampel dan banyak lagi.
Saya baru saja lupa nama alat ini. Adakah yang bisa membantu saya?
Mungkin Anda tahu bahkan alat yang lebih maju yang, misalnya, mendukung distribusi probabilitas yang berbeda atau bahkan pembuatan urutan kata-kata acak di bawah berbagai huruf dan distribusi panjang / karakter.
shell
command-line
maxschlepzig
sumber
sumber
Jika Anda tidak keberatan menulis skrip kecil untuk melakukan apa yang Anda butuhkan, saya sarankan melakukannya di R , sistem statistik open-source.
Misalnya, pertimbangkan one-liner ini untuk mendapatkan daftar 100 nomor yang didistribusikan Gaussian:
Mari kita hancurkan ini.
R
Perintah standar membawa Anda ke lingkungan pemrograman interaktif, yang baik-baik saja jika Anda mencoba mencari cara untuk melakukan sesuatu dengan tangan atau membangun sesuatu secara bertahap, tetapi dari pertanyaan Anda, sepertinya Anda hanya perlu daftar angka untuk mengirim ke program lain. Jadi alih-alih, kami menggunakanRscript
, yang berperilaku lebih seperti juru bahasa skrip Unix tradisional: Anda dapat memberikannya nama file yang berisi skrip R, atau menggunakan-e
bendera standar untuk meneruskan seluruh teks program pada baris perintah.rnorm()
adalah fungsi R untuk mendapatkan daftar angka acak dengan distribusi "normal" atau Gaussian. Dibutuhkan hingga tiga parameter, hanya yang pertama diperlukan, berapa angka yang Anda inginkan. Kami telah meminta 100. Dengan mengambil default untuk dua parameter opsional lainnya, kami mendapatkan rata-rata 0 dan standar deviasi 1.Aritmatika setelah itu hanya memamerkan fitur keren dari bahasa R: Anda dapat melakukan aritmatika pada seluruh tabel data, matriks, dll., Semudah nilai skalar dalam bahasa yang lebih khas. Saya telah mengalikan semua nilai yang dihasilkan dengan 100 dan menambahkan 100 ke mereka, hanya karena saya bisa. Karena R adalah bahasa pemrograman lengkap, tidak ada batasan untuk hal-hal yang dapat Anda lakukan dengan daftar angka ini. Itulah keuntungan menggunakan sistem seperti itu daripada perintah dengan tujuan tetap seperti
jot
.Kami meneruskan hasil operasi sebelumnya ke
write()
fungsi, yang menulis data ke file secara default, tetapi kami telah menimpanya dengan melewatkan string kosong untuk parameter kedua, nama file, sehingga ia menulis tabel untuk terminal sebagai gantinya. Parameter berikutnya,,1
katakan saja kita ingin output kita dalam format satu kolom.R memiliki banyak fungsi pembangkitan angka acak lainnya yang dibangun ke dalam sistem basis. Sebagai contoh, kita dapat meniru
jot
perintah dalam jawaban lcpriani dengan skrip ini:Di sini kita menggunakan
runif()
untuk mendapatkan 10 angka acak yang terdistribusi secara merata dari 12 hingga 27. Sepertirnorm()
, yang kita gunakan di atas, fungsi ini mengembalikan nilai titik-mengambang, jadi kita harusround()
memasukkannya ke nilai integer terdekat sebelum menuliskannya di layar.R juga memiliki serangkaian add-on yang kaya di CRAN , repositori paket yang dimodelkan pada CPAN Perl. Salah satu yang Anda mungkin tertarik hanya disebut acak , yang bertindak sebagai antarmuka ke random.org , layanan yang mengembalikan nomor acak benar yang dihasilkan dari kebisingan atmosfer.
R adalah lingkungan pemrograman yang lengkap, jadi mungkin Anda sebenarnya tidak perlu mengeluarkan angka dari R dalam format teks. Anda mungkin dapat menyelesaikan masalah Anda sepenuhnya dalam R. Cobalah.
sumber
jot
perintah lcpriani pada jawaban di atas. Adapun untuk membatasi nilairnorm()
, itu bukan cara distribusi normal bekerja. Jika Anda mengambil rata-rata default 0 dan SD 1, maka 1000 masih merupakan nilai pengembalian yang mungkin, itu hanya sangat tidak mungkin. R akan membiarkan Anda menulis sesuatu yang akan menjepit nilai-nilai untuk menghapus hal-hal di luar rentang yang diberikan, tetapi kemudian Anda mungkin akan menyalahgunakan distribusi normal.