Có phải tất cả các trình tạo số giả ngẫu nhiên cuối cùng định kỳ?


24

Có phải tất cả các trình tạo số giả ngẫu nhiên cuối cùng định kỳ? Hay cuối cùng họ định kỳ?

Theo định kỳ, ý tôi là, giống như các số hữu tỷ, cuối cùng chúng tạo ra một chuỗi tuần hoàn ...

Và giả ngẫu nhiên có nghĩa là tạo ra các số ngẫu nhiên thuật toán / toán học ...


7
Đây là một điểm phạm vi để thực hiện, nhưng trên một máy tính có bộ nhớ hữu hạn, mọi chương trình không tạm dừng cuối cùng là định kỳ. Bạn có thể phân tích thuật toán khi chạy trên máy Turing, nhưng bất kỳ PRNG nào có sử dụng bộ nhớ đều không bị ràng buộc với thời gian sẽ không thực tế lắm.
Peter

@Peter bạn nói "bất kỳ PRNG nào có sử dụng bộ nhớ không bị ràng buộc với thời gian sẽ không thực tế". Nó có thể không thực tế khi việc sử dụng bộ nhớ là bậc hai hoặc tuyến tính theo thời gian, nhưng nếu nó chỉ là logarit thì sao? Xem câu trả lời của tôi.
Don nở

Câu trả lời:


39

Tất cả các trình tạo giả ngẫu nhiên không dựa vào tính ngẫu nhiên bên ngoài và sử dụng một lượng bộ nhớ giới hạn nhất thiết phải là định kỳ vì chúng có trạng thái hữu hạn. Bạn có thể nghĩ về chúng như là automata hữu hạn xác định rất lớn có trạng thái "đầu ra" đặc biệt trong đó chúng cho đầu ra của chúng. Tất cả các automata hữu hạn cuối cùng là định kỳ, và vì vậy tất cả các trình tạo giả ngẫu nhiên tạo ra đầu ra định kỳ.

Tuy nhiên, thời gian có thể rất lớn. Ví dụ, một PRNG có trạng thái mã hóa 128 bit chỉ có thể quay vòng một lần mỗi bit đầu ra, và vì vậy ngay cả khi xuất ra một bit mỗi nano giây, hệ mặt trời sẽ bị chết vì lặp lại PRNG.2128

Nếu PRNG được phép sử dụng một lượng bộ nhớ không giới hạn (không thực tế) thì có thể, ví dụ, nó có thể tạo ra sự mở rộng nhị phân của , mà chúng ta biết cuối cùng không phải là định kỳ (vì là không hợp lý).22


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
DW

Liên kết đến trò chuyện bị hỏng. Vẫn có thể xem nhật ký của cuộc thảo luận? : / @DW
ỉn

@ cchan3141, tôi đã khôi phục nó; thử ngay bây giờ. Tuy nhiên, hãy cẩn thận rằng các bình luận là do thiết kế tạm thời, và các phòng chat cũng vậy. Nếu bạn tìm thấy bất cứ điều gì trong đó có giá trị lâu dài cho người khác, tôi khuyến khích bạn đề xuất chỉnh sửa câu trả lời để kết hợp thông tin đó hoặc đăng câu trả lời mới của riêng bạn. Cảm ơn bạn!
DW

7

PRNG là máy nhà nước. Nếu chúng chỉ dựa trên đầu vào bên trong (trái ngược với Poker Stars RNG, một sự kết hợp giữa phần cứng và phần mềm, hãy liên tục gieo hạt giống từ ... mẫu âm thanh), bạn sẽ nhận được (C, S1, ...) trong đó C là giá trị hiện tại (hoặc trước đó) và S1, ... có thể là một tập hợp các trạng thái:

Nếu có thể có các giá trị N (vì bộ nhớ bị giới hạn) của C và bạn lặp lại N + 1 lần, bạn sẽ đạt cùng một giá trị cho C ít nhất hai lần. Nếu bạn lặp lại 2N + 1 lần, bạn sẽ đạt cùng một giá trị cho C ít nhất 3 lần.

Đặt T = (Ct, S1t, S2t) là một trạng thái nhất định (giá trị hiện tại và các trạng thái khác).
Đặt M = # {giá trị cho S1} X {giá trị cho S2} X {...} là giá trị chính của các kết hợp trạng thái có thể (một lần nữa: vì bộ nhớ bị giới hạn).

Nếu bạn lặp lại NM + 1 lần so với algoritm, bạn sẽ đạt được ít nhất hai lần trạng thái tương tự (Ct, S1t, S2t, ...), do đó tạo ra cùng một giá trị đầu ra và cùng một chuỗi trạng thái sau so với lần đầu tiên và vì vậy trở thành định kỳ.


6

Ví dụ đơn giản về chuỗi giả ngẫu nhiên không theo định kỳ: nối các biểu diễn nhị phân của tất cả các số nguyên dương, theo thứ tự:

110111001011101111000...

(Chuẩn bị một "." Và nó được gọi là hằng số Champernowne nhị phân .)

Tất nhiên điều này không phải là chất lượng rất cao theo trình tự giả ngẫu nhiên, nhưng nó chứng minh rằng điều đó là có thể mà không cần sử dụng nhiều bộ nhớ.

π2

Yêu cầu bộ nhớ không giới hạn không phải là vấn đề đối với máy Turing và có lẽ nó cũng không phải là vấn đề trong thực tế, vì tốc độ tăng trưởng quá chậm, nhưng nó phụ thuộc vào việc bạn định sử dụng thứ này để làm gì.

2128

2128

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.