Nếu bạn không ngại viết một tập lệnh nhỏ để làm những gì bạn cần, tôi khuyên bạn nên thực hiện nó trong R , hệ thống thống kê nguồn mở.
Chẳng hạn, hãy xem xét lớp lót này để có danh sách 100 số phân phối Gaussian:
$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
Hãy phá vỡ điều này.
Lệnh tiêu chuẩn R
đưa bạn vào một môi trường lập trình tương tác, sẽ tốt nếu bạn đang cố gắng tìm cách làm một cái gì đó bằng tay hoặc đang xây dựng một cái gì đó tăng dần, nhưng từ câu hỏi của bạn, có vẻ như bạn chỉ cần một danh sách các số để gửi đến một chương trình khác. Vì vậy, thay vào đó, chúng tôi sử dụng Rscript
, hoạt động giống như một trình thông dịch kịch bản lệnh Unix truyền thống: bạn có thể chuyển cho nó tên của tệp chứa tập lệnh R hoặc sử dụng -e
cờ tiêu chuẩn để truyền toàn bộ văn bản chương trình trên dòng lệnh.
rnorm()
là hàm R để lấy danh sách các số ngẫu nhiên có phân phối "bình thường" hoặc Gaussian. Phải mất tới ba tham số, chỉ có tham số đầu tiên là bắt buộc, bao nhiêu số bạn muốn. Chúng tôi đã yêu cầu 100. Bằng cách lấy mặc định cho hai tham số tùy chọn khác, chúng tôi nhận được giá trị trung bình là 0 và độ lệch chuẩn là 1.
Số học sau đó chỉ thể hiện một tính năng thú vị của ngôn ngữ R: bạn có thể thực hiện số học trên toàn bộ bảng dữ liệu, ma trận, v.v., dễ dàng như một giá trị vô hướng trong một ngôn ngữ điển hình hơn. Tôi đã nhân tất cả các giá trị được tạo ra với 100 và thêm 100 vào chúng, chỉ vì tôi có thể. Bởi vì R là ngôn ngữ lập trình chính thức, không có giới hạn đối với những điều bạn có thể làm với danh sách số này. Đó là lợi thế của việc sử dụng một hệ thống như vậy thay vì lệnh có mục đích cố định như jot
.
Chúng tôi chuyển kết quả của thao tác trước đó cho write()
hàm, nó ghi dữ liệu ra một tệp theo mặc định, nhưng chúng tôi đã ghi đè điều đó bằng cách chuyển một chuỗi trống cho tham số thứ hai, tên tệp, do đó, nó ghi bảng ra thiết bị đầu cuối thay thế. Tham số tiếp theo 1
, chỉ cho nó biết chúng tôi muốn đầu ra của chúng tôi ở định dạng cột đơn.
R có nhiều hàm tạo số ngẫu nhiên khác được tích hợp vào hệ thống cơ sở. Chẳng hạn, chúng ta có thể bắt chước jot
lệnh trong câu trả lời của lcpriani với kịch bản này:
$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
Ở đây chúng tôi đang sử dụng runif()
để có được 10 số ngẫu nhiên phân bố đồng đều từ 12 đến 27. Giống như rnorm()
, chúng tôi đã sử dụng ở trên, hàm này trả về các giá trị dấu phẩy động, vì vậy chúng tôi phải đưa round()
chúng vào các giá trị nguyên gần nhất của chúng trước khi ghi chúng vào màn hình.
R cũng có một bộ tiện ích bổ sung phong phú trong CRAN , một kho lưu trữ gói được mô hình hóa trên CPAN của Perl. Một thứ bạn có thể quan tâm được gọi đơn giản là ngẫu nhiên , hoạt động như một giao diện cho Random.org , một dịch vụ trả về các số ngẫu nhiên thực sự được tạo ra từ tiếng ồn trong khí quyển.
R là một môi trường lập trình hoàn chỉnh, vì vậy có thể bạn không thực sự cần phải lấy số của mình ra khỏi R ở định dạng văn bản. Bạn có thể giải quyết vấn đề của mình hoàn toàn trong R. Hãy thử.