A számítógép hogy kalkulál véletlen számot?
Igaz, hogy fizikálisan is valódi véletlenszámot csak hardveresen lehet generálni (pl. elektronikus zajgenerátorral, radioaktív eszközzel, stb.), de azért egy alap PC hardverrel is igen jól közelíthető a véletlen sorozat.
"When read, the /dev/random device will only return random bytes within the estimated number of bits of noise in the entropy pool. /dev/random should be suitable for uses that need very high quality randomness such as one-time pad or key generation. When the entropy pool is empty, reads from /dev/random will block until additional environmental noise is gathered."
"The kernel random-number generator is designed to produce a small amount of high-quality seed material to seed a cryptographic pseudo-random number generator (CPRNG)."
Írtatok itt jókat, kevésbé jókat , féligazságot is.
Szóval alapvetően kettő osztályba szedném a számítástechnikailag generált véletlen szám generátorok osztályait.
(Amiket lehet tovább bontani további osztályokra, persze)
Az egyik fajta szerint a generátor indítása előtt inicializálva van egy kezdeti seed értékkel.
Amiből kiszámít a generátor egy belső állapotot (vagy direktbe egyből a belső állapot kerül beállításra seed nélkül.)
Ezt a belső állapotot egy vagy több szám reprezentál (generátortól függ hogy hány szám írja le a belső állapotát).
Majd amikor véletlen számot kérünk tőle akkor egy előre jól megtervezett függvény szerint kiszámít ebből egy számot a függvény és egy új belső állapotot.
Ekkor az új belső állapotot veszi fel a generátor és a kiszámított véletlen számot adja eredményül. Ami igazából csak álvéletlen.
Majd minden egyes új (ál)véletlen szám számításakor ezt megismétli.
A kezdeti inicializálási seed értéket veheti az aktuális pontos idő mikroszekundum pontossággal, vagy számos egyéb paraméterből is kikeverheti.
Támogatni szokták az implementációk a seed érték közvetlen megadását, lehet mindig ugyan az is, ekkor mindig ugyanazt a sorozatot fogja adni a generátor indításától számítva.
Ez jól jöhet szimulációknál, ha pontosan megismételhetőre akarunk csinálni valami szimulációt. Továbbá az aktuális belső állapotot is ki lehet menteni, majd később újra azt betölteni és onnan folytatja akkor a generátor ahol máskor meg abbahagyta.
Ez szintén szimulációknál hasznos tud lenni.
A másik osztályba sorolt véletlen szám generátorok alapvetően abban különböznek hogy nem elég nekik egyetlen kezdeti seed érték.
Folyamatosan táplálni kell a generátort külső forrásból. Alapvetően úgy működnek mint az első osztály szerintiek, csak
ez esetben mindig hozzá keveri a belső állapotának beállításához a külső forrásból származtatott számszerű értékeket.
A külső forrásból származtatott számszerű értéketeknek kell olyannak lennie hogy azok lehetőleg egyediek és megismételhetetlenek legyenek.
A külső forrásból származtatott leképező függvénynek teljesíteni a lavina effektust. Ami azt jelenti, hogy nagyon érzékenynek kell lennie nagyon kis változásra. Ami akkor maximális ha leképező függvény bemenete csak egyetlen bitben tér el mint előzőleg akkor statisztikailag igaz a kimeneti minden bitjére, hogy 50% valószínűséggel lesz az mint előzőleg volt.
Persze ezt úgy kell érteni hogy természetesen determinisztikus ez a leképező függvény. Csak ha statisztikai tesztekkel teszteljük ezt a leképezést akkor e szerint az egyenletességi hipotézis szerint várhatók értelem szerűen a tesz eredményei.
Az is már tudomány hogy hány bites bemenetből hány bites kiemenet kell milyen esetben, vagyis hogy az adott bemenetnek mekkora az entrópiája, inkább becsüljük alul mint túl, ekkor lesz valóban előre megjósolhatatlan (persze ez a külső forrástól is függ, de ezért kell így csinálni a lavina effektus szerint, ezért mérjünk pl mikorszekundom helyett akár nanoszekundum pontosan és mérjünk hőmérségletet fok helyett ezred fok pontosan vagy még pontosabban stb).
Ezt a külső ugye lehet cpu hőmérséglet, futó folyamatok, hálózati forgalom stb. A random.org például légköri zajokat használ fel, de vannak külön hardveres random generátorok. Amiknek már külön kvantummechanikai okai vannak hogy miként működnek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!