Hogyan keletkeznek az igazi véletlen (random) számok a számítástechnikában, valóságban?
Úgy tudom, hogy a számítógép mindent csak függvények alapján tud kiszámolni, létrehozni. Ha függvények alapján hozza létre, akkor viszont nem véletlen. Olyat is hallottam, hogy valamilyen külső tényezőből számítják, pl a kozmikus háttér sugárzásból.
Szerintetek mi az ami igazi véletlen a világban, tehát aminek semmilyen más külső tényező nem befolyásolja az eredményét? Ti miből csinálnátok random generátort?
A "véletlen" egy relatív fogalom. Hogy valami véletlen-e vagy sem, az az ismereteinken múlik. Ha feldobsz egy pénzérmét, és semmi egyebet nem tudsz, akkor véletlen, hogy melyik oldalára esik. Ha viszont meg tudod mérni a pontos kezdőhelyzetét és kezdősebességét, akkor meg tudod mondani, melyik oldalára esik, így számodra már nem lesz véletlen. Pedig ugyanarról a dologról van szó.
A számítógépekben futó véletlengenerátor is véletlenszámot ad olyan értelemben, hogy nem látsz bele a programba. De ha belelátnál, és lépésről lépésre nyomon követnéd az algoritmus működését, akkor előre meg tudnád mondani, mi fog kijönni.
Egyébként ezek pszeudovéletlen számok, ami azt jelenti, hogy bár egy algoritmus hozza létre őket, az eloszlásuk ugyanolyan egyenletes, mint a valódiaké, tehát ugyanolyan jól használhatók.
Hogy a program ne mindig ugyanazt a számot adja, vagy ugyanazokat a számokat ugyanolyan sorrendben, valóban kell egy külső paraméter, de ehhez a legtöbb esetben nem kell valami bonyolult dolog, elég pl a számítógép órájának aktuális értéke, vagy annak egy része (pl. az ezredmásodperc része). elég valószínűtlen, hogy valaki mindig ugyanabban az ezredmásodpercben fogja elindítani a programot.
Persze ha ennek a veszélye mégis fennáll, akkor kell keresni valami mást, olyasmit, amit te is írtál.
"Szerintetek mi az ami igazi véletlen a világban, tehát aminek semmilyen más külső tényező nem befolyásolja az eredményét?"
Ezt nevezik objektív véletlennek, kvantum szintű folyamatok pl. Heisenberg-féle határozatlansági elv.
Amit csak azért nem tudunk mert nem rendelkezünk kellő információval, de különben előre kiszámítható lenne azt nevezik szubjektív véletlennek.
Már kapható is olyan cpu mely tud hardveresen random-ot generálni és valóban a termikus zajokból veszi. Az a baj a hardveres generátorokkal ,hogy mint minden elromolhat, de ez úgy is leromolhat hogy nem veszed észre, az a baj hogy algoritmikusan eldönthetetlen hogy az ha tényleg jó a generátor.
Egy jó álrandom generátor többet érhet mint egy hardverhibás hardveres random generátor.
----
"Ti miből csinálnátok random generátort?"
Attól függ mire kell, akár egy melevő álvéletlen szám generátorral generáltatnám a számokat folyamatosan ha egy entert nyom az ürge akkor kilökné az aktuálisan kiszámított értéket.
Újat nem csinálnék, nem találnám fel a melegvizet, jobbat úgy sem tudnék csinálni mint amilyen van. Inkább az eddigieket felhasználnám vagy beintegrálnám.
Linux alatt alapból van random generátor, ami sok mindent figylemebe vesz hálózati forgalom felhasználói interakciók stb. egyszerűen a /dev/random-ot kell streamelni és a bitegből összerakni a véletlen számokat, csak ezzel az a baj ha elfogy az entrópia akkor megáll a program (ha nincs hardveres random generátor), erre van a /dev/urandom hogy akkor tovább számolja anélkül hogy újjabb zajokat keverne hozzá.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!