Tüm sözde rasgele sayı üreteçleri sonuçta periyodik midir?


24

Tüm sözde rasgele sayı üreteçleri sonuçta periyodik midir? Yoksa sonunda periyodik mi?

Periyodik olarak demek istediğim, rasyonel sayılar gibi, sonunda periyodik bir sonuç oluştururlar ...

Ve sözde rastgele, rastgele sayıların algoritmik / matematiksel neslidir ...


7
Bu yapmak için bilgisel bir nokta, ancak sonlu bellek bir bilgisayarda, hiç durmayan her program sonuçta periyodiktir. Algoritmayı bir Turing makinesinde çalışırken analiz edebilirsiniz, ancak hafızası kullanımı zamanla sınırlandırılmamış PRNG'ler pek pratik olmaz.
Peter,

@ "Hafıza kullanımı zamanla sınırlandırılmamış herhangi bir PRNG çok pratik olmaz" diyorsunuz. Hafıza kullanımının zamana göre karesel veya doğrusal olması pratik olmayabilir, fakat ya sadece logaritmikse? Cevabımı gör.
Don Hatch,

Yanıtlar:


39

Dış rastgeleliğe güvenmeyen ve sınırlı miktarda bellek kullanan tüm sözderandom jeneratörleri, sonlu bir duruma sahip oldukları için mutlaka periyodiktir. Bunları, çıktılarını verdikleri özel "çıktı" durumları olan devasa deterministik sonlu otomatlar olarak düşünebilirsiniz. Tüm sonlu otomatlar sonunda periyodiktir ve bu yüzden tüm sahte ve jeneratörler sonunda periyodik çıktı üretir.

Ancak, dönem uzunluğu muazzam olabilir. Örneğin, 128 bit şifreleme durumuna sahip bir PRNG, her bit bitinde yalnızca bir kez döngü yapabilir ve böylece her nanosaniyede bir bit çıkarsa bile güneş sistemi ölür ve PRNG tekrarlanır.2128

PRNG'nin sınırsız miktarda bellek kullanmasına izin verilirse (gerçekçi değildir), örneğin, sonunda periyodik olmadığını bildiğimiz in ikili genişlemesini çıkarabilir ( irrasyoneldir).22


Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
DW

Sohbete bağlantı koptu. Tartışma günlüğünü görmek hala mümkün mü? : / @DW
oink,

@ cchan3141, Onu geri yükledim; şimdi dene. Ancak, yorumların tasarım geçici olduğunu ve aynı şekilde sohbet odaları için geçerli olduğunu unutmayın. Orada başkaları için kalıcı olan bir şey bulursanız, bu bilgiyi birleştirmek için cevabınıza bir düzenleme yapmanızı veya kendinize ait yeni bir cevap göndermenizi öneririm. Teşekkür ederim!
DW

7

PRNG'ler devlet makineleridir. Yalnızca dahili girdiye dayanıyorlarsa (donanım ve yazılımın bir kombinasyonu olan Poker Stars RNG'nin aksine, kendisini sürekli olarak ... ses örneklerinden tohumlamak) alırsınız (C, S1, ...) Geçerli (veya önceki) değer ve S1, ... bir durum kümesi olabilir:

C'nin N değerleri varsa (bellek sınırlandırılmışsa) C ve N + 1 kez yinelenirseniz, C için aynı değere en az iki kez basacaksınız. 2N + 1 kez tekrarlarsanız, C için aynı değeri en az 3 kez vurursunuz.

T = (Ct, S1t, S2t) belirli bir durum (geçerli değer ve diğer durumlar) olsun.
M = # {S1} X için değerler {S2} X için değerler {{}} olası durum kombinasyonlarının kardinal değeri olsun (yine: bellek bağlı olduğundan).

Eğer algoritmayı NM + 1 kez tekrarlarsanız, aynı duruma en az iki kere erişirsiniz (Ct, S1t, S2t, ...), böylece aynı çıkış değerini ve ilk kez aynı takip eden durum sırasını oluşturur ve bu yüzden periyodik olma.


6

Periyodik olmayan sözde rastgele dizinin basit bir örneği: tüm pozitif tam sayıların ikili gösterimlerini sırayla birleştirin:

110111001011101111000...

(Bir "." Ye bağımlı ve buna ikili Champernowne sabiti denir .)

Elbette bu, sözde rastgele dizilerin yürüdüğü kadar yüksek bir kalite değildir, ancak fazla bellek kullanmadan mümkün olduğunu göstermektedir.

Bu örnekte, durumu depolamak için gereken bellek teorik olarak sınırsızdır; ancak çok yavaş büyür (örneğin, veya rakamlarını hesaplamak için gereken belleğe kıyasla ). Aynı şekilde, her biti oluşturmak için gereken süre için.π2

Sınırlandırılmamış bellek gereksinimi bir turing makinesi için bir sorun değildir ve büyüme de yavaş olduğu için muhtemelen uygulamada bir sorun değildir, ancak bu şeyi ne amaçla kullanacağınıza bağlıdır.

Örneğin, yaptığınız tek şey aslında sırayla bitler üretiyorsa, o zaman gerçek bir bilgisayarda, evrenin kullanım ömrü boyunca hiçbir zaman hafızanız tükenmeden kolaylıkla rasgele bir şekilde bu aperiodik dizinin bitlerini oluşturabilirsiniz. Bununla birlikte, bu kullanım için aperiodicity'nin, sadece evrenin yaşamında da ulaşılamayacak gibi çok büyük bir süreye sahip olmasının avantajı yoktur . Yani, "normal" kullanım açısından pek bir fark yoktur.2128

Farklılaştırıcı, sanırım, PRNG'nizden diğer PRNG'leri türetmek gibi şeyler yapmak istiyorsanız, düzenli aralıklarla bir alt sıra alarak diyelim. Eğer aperiodik PRNG ile başlarsanız, hangi periyodda olursanız olun, aperiodik bir sonuç alırsınız, oysa periyodu PRNG ile başlarsanız, örnekleme periyodu ise başınız belaya girer. Yeterince büyük.2128

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.