Đây là lệnh ent có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
ent - kiểm tra chuỗi số giả ngẫu nhiên
SYNOPSIS
ent [tùy chọn] [tệp]
MÔ TẢ
Logo tai mũi họng
ent thực hiện nhiều thử nghiệm khác nhau trên luồng byte trong hồ sơ (hoặc đầu vào tiêu chuẩn nếu không
hồ sơ được chỉ định) và sản xuất đầu ra trên đầu ra tiêu chuẩn; Ví dụ:
Entropy = 7.980627 bit trên mỗi ký tự.
Nén tối ưu sẽ làm giảm kích thước
của tệp 51768 ký tự này bằng 0 phần trăm.
Phân phối Chi bình phương cho 51768 mẫu là 1542.26 và ngẫu nhiên
sẽ vượt quá giá trị này 0.01 phần trăm số lần.
Giá trị trung bình số học của byte dữ liệu là 125.93 (127.5 = ngẫu nhiên).
Giá trị Monte Carlo cho Pi là 3.169834647 (sai số 0.90 phần trăm).
Hệ số tương quan nối tiếp là 0.004249 (hoàn toàn không tương quan = 0.0).
Các giá trị được tính như sau:
SỰ HỖN LOẠN
Mật độ thông tin của nội dung tệp, được biểu thị bằng số bit trên mỗi
tính cách. Các kết quả ở trên, là kết quả của việc xử lý một tệp hình ảnh được nén bằng
JPEG, chỉ ra rằng tệp có rất nhiều thông tin - về cơ bản là ngẫu nhiên. Kể từ đây,
nén tệp không có khả năng làm giảm kích thước của nó. Ngược lại, mã nguồn C của
chương trình có entropy khoảng 4.9 bit trên mỗi ký tự, cho thấy rằng
nén tệp sẽ giảm kích thước của nó 38%. [Hamming, trang 104-108]
CHI-VUÔNG THI
Phép thử chi-square là phép thử được sử dụng phổ biến nhất cho tính ngẫu nhiên của dữ liệu và là
cực kỳ nhạy cảm với các lỗi trong trình tạo chuỗi giả ngẫu nhiên. Chi-square
phân phối được tính toán cho luồng byte trong tệp và được biểu thị dưới dạng
số tuyệt đối và một tỷ lệ phần trăm cho biết tần suất một chuỗi thực sự ngẫu nhiên
sẽ vượt quá giá trị được tính toán. Chúng tôi giải thích tỷ lệ phần trăm là mức độ mà
trình tự được kiểm tra bị nghi ngờ là không ngẫu nhiên. Nếu tỷ lệ phần trăm lớn hơn 99% hoặc
dưới 1%, trình tự gần như chắc chắn không phải là ngẫu nhiên. Nếu tỷ lệ phần trăm nằm giữa
99% và 95% hoặc từ 1% đến 5%, trình tự là nghi ngờ. Phần trăm từ 90% đến
95% và 5% và 10% cho thấy trình tự "gần như đáng ngờ". Lưu ý rằng tệp JPEG của chúng tôi,
mặc dù rất dày đặc về thông tin, nhưng không phải là ngẫu nhiên như được tiết lộ bởi kiểm định chi-bình phương.
Áp dụng thử nghiệm này cho đầu ra của các bộ tạo trình tự ngẫu nhiên giả khác nhau là
thú vị. 8 bit bậc thấp được trả về bởi Unix tiêu chuẩn rand(1) chức năng, cho
ví dụ, sản lượng:
Phân phối Chi bình phương cho 500000 mẫu là 0.01 và ngẫu nhiên
sẽ vượt quá giá trị này 99.99 phần trăm số lần.
Trong khi một trình tạo cải tiến [Park & Miller] báo cáo:
Phân phối Chi bình phương cho 500000 mẫu là 212.53 và ngẫu nhiên
sẽ vượt quá giá trị này 95.00 phần trăm số lần.
Do đó, trình tạo Unix tiêu chuẩn (hoặc ít nhất là các byte bậc thấp mà nó trả về) là
không thể chấp nhận được không ngẫu nhiên, trong khi trình tạo cải tiến tốt hơn nhiều nhưng vẫn
đủ không ngẫu nhiên để gây lo ngại cho các ứng dụng đòi hỏi. Đối lập cả hai
các trình tạo phần mềm này với kết quả chi-bình phương của một chuỗi ngẫu nhiên chính hãng được tạo
bằng cách xác định thời gian các sự kiện phân rã phóng xạ [1]:
Phân phối Chi bình phương cho 32768 mẫu là 237.05 và ngẫu nhiên
sẽ vượt quá giá trị này 75.00 phần trăm số lần.
Xem [Knuth, trang 35-40] để biết thêm thông tin về phép thử chi-square. Một chi-
máy tính hình vuông [2] có sẵn tại trang web này.
MÔN SỐ HỌC NGHĨA LÀ
Đây chỉ đơn giản là kết quả của việc tổng hợp tất cả các byte (các bit nếu -b tùy chọn được chỉ định) trong
tệp và chia cho độ dài tệp. Nếu dữ liệu gần với ngẫu nhiên, điều này sẽ
khoảng 127.5 (0.5 cho -b đầu ra tùy chọn). Nếu giá trị trung bình khác với giá trị này, các giá trị
luôn ở mức cao hoặc thấp.
MONTE Xe tải VALUE CHO PI
Mỗi chuỗi sáu byte liên tiếp được sử dụng làm tọa độ 24 bit X và Y trong một
Quảng trường. Nếu khoảng cách của điểm được tạo ngẫu nhiên nhỏ hơn bán kính của
vòng tròn nội tiếp trong hình vuông, chuỗi sáu byte được coi là "hit". Các
phần trăm số lần truy cập có thể được sử dụng để tính toán giá trị của Pi. Đối với các luồng rất lớn (cái này
sự xấp xỉ hội tụ rất chậm), giá trị sẽ tiệm cận với giá trị chính xác của Pi nếu
trình tự gần với ngẫu nhiên. Tệp 32768 byte được tạo bởi quá trình phân rã phóng xạ đã mang lại:
Giá trị Monte Carlo cho Pi là 3.139648438 (sai số 0.06 phần trăm).
NỐI TIẾP THAM NHŨNG HIỆU QUẢ
Số lượng này đo lường mức độ mà mỗi byte trong tệp phụ thuộc vào
byte. Đối với các chuỗi ngẫu nhiên, giá trị này (có thể dương hoặc âm) sẽ, là
tất nhiên, gần bằng không. Một luồng byte không ngẫu nhiên chẳng hạn như chương trình C sẽ mang lại một chuỗi
hệ số tương quan trên bậc 0.5. Dữ liệu có thể đoán trước một cách hoang dã, chẳng hạn như không được nén
bitmap sẽ thể hiện hệ số tương quan nối tiếp đến gần bằng 1. Xem [Knuth, trang 64-65]
để biết thêm chi tiết.
LỰA CHỌN
-b Đầu vào được coi là một dòng bit thay vì 8 bit byte. Số liệu thống kê
được báo cáo phản ánh các thuộc tính của dòng bit.
-c In một bảng về số lần xuất hiện của mỗi byte có thể có (hoặc bit, nếu -b
tùy chọn cũng được chỉ định) giá trị và phần của tệp tổng thể được tạo bởi
giá trị đó. Các ký tự có thể in trong bộ ký tự ISO-8859-1 (Latinh-1) là
được hiển thị cùng với các giá trị byte thập phân của chúng. Trong chế độ đầu ra không ngắn gọn, các giá trị với
không xuất hiện không được in.
-f Gấp chữ hoa thành chữ thường trước khi tính toán thống kê. Gấp xong
dựa trên bộ ký tự ISO-8859-1 (Latinh-1), với các chữ cái có dấu chính xác
xử lý.
-t Chế độ Terse: đầu ra được viết ở định dạng Giá trị Phân tách bằng Dấu phẩy (CSV), phù hợp với
tải vào bảng tính và dễ dàng đọc bằng bất kỳ ngôn ngữ lập trình nào. Xem Terse
Định dạng đầu ra chế độ bên dưới để biết thêm chi tiết.
-u In thông tin cách gọi.
Sử dụng ent trực tuyến bằng các dịch vụ onworks.net