Módszer véletlenszám generálására (C++)?
Sokszor ugyan azokat a számokat adja ki még nagyobb intervallum esetén is ( srand(time(0)); esetén is ), vagy csak 1-gyel nőnek minden alkalommal. Tudom, hogy nem szó szerinti véletlenszámokról van szó, de szeretném kicsit 'élethűbbé' tenni, mintha tényleg véletlenszámok lennének. Van valami módszer vagy trükk erre?
Amit tudok:
Számláló használata: srand(time(0));
Egész szám sorsolása adott intervallumból [alsó;felső]: rand() % (felső-alsó+1)+alsó;
Valós szám sorsolása adott intervallumból [alsó;felső]: ((float)rand() / RAND_MAX) * (felső-alsó)+alsó;
Szoftveresen nem lehet sokat javítani rajta, mivel nem valódi véletlen, hanem egy determinisztikus művelet, minden bemenetre ugyanazt a kimenetet adja (bemenet itt az egyenlő a time()-mal, és utána azzal hogy mi volt az előző rand érték).
Sok hardver támogat hardveres véletlenszámot, érdemes lehet ilyennel foglalkoznod, ha valóban valódi véletlent szeretnél, illetve létezik weboldal, ahol lehet generálni igazit, ami szintén egy hardverből olvassa ki, és nem szoftverrel generálja.
Köszi a válaszokat és a linkeket.
Én valami olyanra gondoltam, hogy pointer értékét generálja, aztán abból lesz konkrét érték.
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!