Mi a random számgenerálásnak a logikája programozásnak?
Nagyon sokféle megoldás van, az a közös bennük, hogy igyekeznek bonyolult és nem reprodukálható módon számolni. Több bemenő adatból generálnak, így csak akkor jönne ki ugyanaz, ha az összes bemenet pontosan megegyezne.
A programnyelvekben az alap random függvény általában az aktuális időt és esetleg pár más paramétert használja.
A menőbb generátorok már csillag együttállások meg ilyenek alapján működnek, amik ugyebár egyszer az életben következnek be -> nincs ismétlődés, nagyon nehezen reprodukálható (vagy jósolható) az eredmény.
Orfeusz drága hülyeséget beszélsz. A reprodukálhatóság alapkövetelmény egy randomgenerátorral szemben...
Olvassátok már el a jegyzetet amit küldtem, ne a hülyeséget terjesszétek.
Sokféle módszer van rá. Vannak valódi és pszeudo-random generátorok, előbbi környezeti zajokból gyűjt például entrópiát, utóbbi viszont determinisztikus. Legegyszerűbben egy LCG-t implementálhatsz, íme egy jó eloszlással rendelkező függvény:
unsigned int random() {
seed = (1103515245*seed+12345)%2147483648;
return seed;
}
A seed kezdőértékét általában az UNIX időre állítják. Egyszerű tesztekhez még elégséges egy ilyen függvény, komplexebb feladatokhoz legalább egy Mersenne twister-t érdemes alkalmazni, ha meg a biztonság is számít, akkor valamelyik CSPRNG-t, vagy true random generator-t.
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!