Véletlenszám generátorok 5. előadás
Véletlenszerű változók, valószínűség véletlen, véletlen változók valószínűség fogalma egy adott esemény bekövetkezésének esélye értékét 0 és 1 között adjuk meg az összes lehetséges esemény esélyének összege 1 A véletlen változókhoz eloszlások tartoznak normális (Gauss) egyenletes hatványfüggvény Minden (adat)sokaságnak van gyakoriság-eloszlása. A véletlen változóról feltesszük, hogy egy bizonyos (jellegű) sokaságból vesz (véletlen) mintákat. A valószínűségi változó eloszlása.
Normális eloszlás a természetben igen gyakori pl. fák évgyűrűinek szélessége, az emberek magassága stb. egy ideig (jó régen) egyfajta csoda volt, valamiféle „felsőbb” szabályszerűságet láttak benne. a valószínűségszámítás egyik fontos tétele, a központi határeloszlás tétele szerint: ha nagy számú (lényegében tetszőleges eloszlású) véletlen hatást elegendően nagy számban összegzünk, akkor normális eloszlást kapunk
Valódi és pszeudo véletlenszám generátorok véletlen folyamatok modellezése véletlenszám generátor Rmin és Rmax közötti értékek előre rögzített eloszlásfüggvénnyel rendelkeznek f(x) normált eloszlás Egyenletes eloszlású véletlenszám generátorok az adott intervallumon minden egyes számot azonos valószínűséggel generálnak tulajdonságok: gyors a generált számok egymástól tökéletesen függetlenek a sorozatnak vagy egy részének nem szabad periodikusan ismétlődnie az eloszlás nagyszámú próbálkozásra teljesen egyenletes kell legyen véletlenszám generátor véletlenszerű folyamat determinisztikus számítógéppel hogyan lehet véletlenszámot generálni? SEHOGY!!! véletlenszámokat „hamisítunk” determinisztikus előállítás, a kívánt tulajdonságokat jól megközelítik
Modulo generátorok FONTOS a paraméterek megválasztása FELADAT: egész számokat elhelyezni véletlenszerű sorrendben 0 és Rmax között FONTOS a paraméterek megválasztása pl. a = 3, c = 4, Rmax = 32 1, 7, 25, 17, 23, 9, 31, 1, 7, 25, ... periódus 8 a,c –re ún. „mágikus”, jól bevált kombinációkat szoktak használni ANSI C-ben: Rmax = RAND_MAX – a legnagyobb integer érték a kezdőértéket (SEED) változtathatjuk TRANSZFORMÁLÁS: [0, 1): [Rmin, Rmax): {Rmin, .., Rmax-1}:
Véletlenszám generátorok tesztelése periódus meghatározása meghatározzuk, hogy hány véletlenszámot generálunk ismétlődés nélkül egyenletes eloszlás tesztelése hisztogramm teszt: ábrázoljuk adott kis intervallumokba eső véletlenszámok gyakoriságát egyenletes eloszlás + elsőrendű korrelációk hiányának ellenőrzése vizuális teszt: koordináta rendszerben ábrázoljuk az (xn, xn+1) pontokat egyenletes befeketedés azt jelenti, hogy jó a generátor korrelációk tesztelése k-ad rendű korrelációk mértéke: ha xi, xi+k egymástól független, akkor és így c(k) = 0
Tetszőleges eloszlású véletlenszámok generálása VAN NEKÜNK: GEN1 generátorunk, ami egyenletes eloszlást generál a [0, 1)-en FELADAT: GEN2 létrehozása, ami g(x) eloszlású véletlenszámokat generál [Rmin, Rmax)-on MIT TUDUNK? g(x) normált Kell egy transzformáció, amire igazak a következők: GEN1 = 0 GEN2 = Rmin GEN1 = x GEN2 = y GEN1 = 1 GEN2 = Rmax annak valószínűsége, hogy annak valószínűsége, hogy 0, x között generáljunk Rmin, y között generáljunk