Kezdőoldal » Számítástechnika » Programozás » Módszer véletlenszám generálás...

Módszer véletlenszám generálására (C++)?

Figyelt kérdés

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ó;


2020. okt. 23. 21:34
 1/5 anonim ***** válasza:

1:

[link]


2:

[link]

2020. okt. 23. 23:04
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
Használj egy olyan inputot, ami valóban random. Például egy mikrofont. Vegyél két hangmintát (ne egymás után, hanem mondjuk 100 ms eltéréssel), szorozd össze az abszolút értékük és vedd modulo annyi, ami intervallumban egy random számot akarsz. Tedd ki a mikrofont a szabadba ahol közkekedés van, madarak csicseregnek, fúj a szél, egyszóval ahol általad nem befolyásolható dolgok hangot keltenek. Máris van egy valódi random számod, amit persze lehet befolyásolni, de kizárt, hogy sikerül kétszer pont akkor és pont úgy beleüvöltened, hogy ugyan azt a számot kapd.
2020. okt. 23. 23:05
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
56%
az srand(time())-al az a probléma, hogy az aktuális időből generálja a random számot, tehát előre tudható vagyis kiszámítható, hogyan fognak jönni a számok. Ha például egy gépi lottó sorsolás ezzel a módszerral menne, akkor sok 4-5ös találat lenne.
2020. okt. 23. 23:06
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

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.

2020. okt. 23. 23:14
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

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.

2020. okt. 24. 12:35

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!