Tôi đã sử dụng MT19937
trong khai thác thử nghiệm để tạo các giá trị 32 bit [0, - 1] thống nhất, dựa trên triển khai mt19937.c của Tác giả ban đầu , để tạo ra nguồn cung cấp ngẫu nhiên (về cơ bản là vô tận) của các octet bit. Điều này thay cho CSPRNG, không cần thiết cho các thử nghiệm cụ thể này. Tuy nhiên, gần đây tôi đã xem xét các PRNG - không phải vì các thuộc tính thống kê như vậy (cả hai dường như không đủ cho nhu cầu của tôi) - nhưng chúng dường như đề xuất một triển khai hiệu quả hơn.WELL
Tôi thiếu nền tảng toán học cho các bài báo học thuật, mặc dù ít nhất tôi có thể theo ma trận 'xoắn' và biến đổi ủ cho cái trước. Tuy nhiên, phần lớn mã được cung cấp bởi các Tác giả của các WELL-n
hàm dường như tập trung vào việc tạo dấu phẩy động, với một số hằng số dấu phẩy động kỳ diệu (ví dụ 2.32830643653869628906e-10
:). Các bước có thể được bỏ qua khỏi WELL
mã để cung cấp phân phối 32 bit thống nhất không? Hoặc là thuật toán được thiết kế / thiên vị cụ thể cho các phân phối dấu phẩy động?
Hoặc tôi là một người không chính xác trong suy nghĩ WELL
sẽ mang lại hiệu suất tăng cho thế hệ vector uint32 'số lượng lớn', trong khi đáp ứng yêu cầu của tôi?
PCG
RNG. Chúng nhanh hơn nhiều, có thể cung cấp thời gian rất dài (cũng như nhiều luồng) với các đặc tính tuyệt vời về mặt thống kê và dường như phục hồi rất nhanh từ các IV nghèo.