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:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Mari kita hancurkan ini.
RPerintah 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 menggunakan Rscript, yang berperilaku lebih seperti juru bahasa skrip Unix tradisional: Anda dapat memberikannya nama file yang berisi skrip R, atau menggunakan -ebendera 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,, 1katakan 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 jotperintah dalam jawaban lcpriani dengan skrip ini:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
Di sini kita menggunakan runif()untuk mendapatkan 10 angka acak yang terdistribusi secara merata dari 12 hingga 27. Seperti rnorm(), yang kita gunakan di atas, fungsi ini mengembalikan nilai titik-mengambang, jadi kita harus round()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.