Apakah semua generator bilangan pseudo-acak akhirnya periodik?

24

Apakah semua generator bilangan pseudo-acak akhirnya periodik? Atau apakah mereka berkala pada akhirnya?

Secara periodik yang saya maksudkan adalah, seperti bilangan rasional, mereka pada akhirnya menghasilkan urutan periodik ...

Dan pseudo-acak berarti generasi algoritmik / matematis angka acak ...

pengguna13675
sumber
7
Ini adalah hal yang luar biasa, tetapi pada komputer dengan memori terbatas, setiap program yang tidak berhenti pada akhirnya bersifat periodik. Anda dapat menganalisis algoritme sebagai berjalan pada mesin Turing, tetapi setiap PRNG yang penggunaan memorinya tidak dibatasi oleh waktu tidak akan terlalu praktis.
Peter
@Peter Anda mengatakan "PRNG mana saja yang penggunaan memorinya tidak dibatasi oleh waktu tidak akan sangat praktis". Ini mungkin tidak praktis ketika penggunaan memori kuadratik atau linier sehubungan dengan waktu, tetapi bagaimana jika itu hanya logaritmik? Lihat jawaban saya.
Don Hatch

Jawaban:

39

Semua generator pseudorandom yang tidak bergantung pada keacakan luar dan menggunakan jumlah memori terbatas pada akhirnya harus periodik karena mereka memiliki kondisi terbatas. Anda dapat menganggap mereka sebagai automata terbatas deterministik besar yang memiliki status "output" khusus di mana mereka memberikan output. Semua automata terbatas pada akhirnya periodik, sehingga semua generator pseudorandom akhirnya menghasilkan output periodik.

Namun, panjang periode bisa sangat besar. Sebagai contoh, sebuah PRNG dengan keadaan kriptografi 128 bit hanya dapat berputar sekali setiap bit output, dan bahkan jika mengeluarkan satu bit setiap nanosecond, tata surya akan mati sebelum PRNG mengulangi.2128

22

Yuval Filmus
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
DW
Tautan ke obrolan terputus. Apakah masih mungkin untuk melihat log diskusi? : / @DW
oink
@ cchan3141, saya sudah mengembalikannya; coba sekarang. Namun, berhati-hatilah bahwa komentar berdasarkan desain sementara, dan hal yang sama berlaku untuk ruang obrolan. Jika Anda menemukan sesuatu di sana yang memiliki nilai abadi bagi orang lain, saya mendorong Anda untuk menyarankan edit pada jawaban untuk memasukkan informasi itu, atau memposting jawaban baru Anda sendiri. Terima kasih!
DW
7

PRNG adalah mesin negara. Jika mereka hanya berbasis pada input internal (berbeda dengan Poker Stars RNG yang merupakan kombinasi perangkat keras dan perangkat lunak, penyemaian sendiri secara terus-menerus dari ... sampel suara) Anda akan mendapatkan (C, S1, ...) di mana C adalah nilai saat ini (atau sebelumnya) dan S1, ... bisa berupa serangkaian status:

Jika ada kemungkinan nilai N (karena memori dibatasi) dari C dan Anda mengulangi N + 1 kali, Anda akan menekan nilai yang sama untuk C setidaknya dua kali. Jika Anda mengulangi 2N + 1 kali, Anda akan menekan nilai yang sama untuk C setidaknya 3 kali.

Misalkan T = (Ct, S1t, S2t) menjadi status tertentu (nilai saat ini dan status lainnya).
Biarkan M = # {nilai untuk S1} X {nilai untuk S2} X {...} menjadi kardinal dari kemungkinan kombinasi keadaan (sekali lagi: karena memori dibatasi).

Jika Anda mengulang NM + 1 kali algoritme, Anda akan mencapai setidaknya dua kali status yang sama (Ct, S1t, S2t, ...), sehingga menghasilkan nilai output yang sama dan urutan keadaan berikut yang sama dari yang pertama kali, dan jadi menjadi berkala.

Luis Masuelli
sumber
6

Contoh sederhana dari urutan pseudo-acak yang tidak periodik: menyatukan representasi biner dari semua bilangan bulat positif, dengan urutan:

110111001011101111000...

(Sebutkan "." Dan ini disebut konstanta biner Champernowne .)

Tentu saja ini bukan kualitas yang sangat tinggi sejauh urutan pseudo-random pergi, tetapi ini menunjukkan bahwa itu mungkin tanpa menggunakan banyak memori.

π2

Persyaratan memori tanpa batas bukanlah masalah untuk mesin turing, dan mungkin juga tidak ada masalah dalam praktiknya, karena pertumbuhannya sangat lambat, tetapi tergantung pada apa Anda berniat menggunakannya.

2128

2128

Don Hatch
sumber