- Hivatalos a OnePlus 13 startdátuma
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- One mobilszolgáltatások
- Válságmódban a Samsung mobildivíziója
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Telekom mobilszolgáltatások
- Jobb zajszűréssel és okos funkciókkal töltve megjelent az Apple AirPods Max 2
- Milyen okostelefont vegyek?
- Google Pixel topik
Új hozzászólás Aktív témák
-
Chipi333
csendes tag
válasz
shinodas
#3206
üzenetére
Az srand( time(NULL) ) beállítja a random fv kezdeti értékét az aktuális időre. A rand() pedig generál egy véletlenszámot (ami nem annyira véletlen). A %9 azért kell hogy 0-8 intervallumra és ne az int telje értékkészletére generáljon.
Az srand( time(NULL) ) azért kell mert a rand fv egyébként teljesen determinisztikus, szóval azonos kezdeti értékről indítva mindig ugyanazt a sorozatot generálná. Ezért általában az idő alapján szokás indítani, mert az jó eséllyel minden futtatáskor más lesz.Szerk.: De sokakat megmozgatott ez a téma

-
Karma
félisten
válasz
shinodas
#3206
üzenetére
Az egész mögött egy pszeudo-véletlenszám generátor van, ami egy kezdőérték (seed) alapján generál számokat. (Nem valódi véletlenszámok, de ez most mindegy.)
A srand függvény szolgál ennek a seed értéknek a beállítására. A time(NULL) függvény az aktuális rendszeridőt adja vissza egy egész szám formájában (1970. január 1. óta eltelt másodpercek száma); ha ezt adod meg seednek, gyakorlatilag minden másodpercben más véletlenszámokat kapsz.
Azonos seed mellett meg ugyanazok a számsorozat jönne ki a rand() hívogatása során.
A rand() egyébként ez a seed meg a belső algoritmusa alapján egy 0 és RAND_MAX (legalább 32767, maximum MAX_INT, környezetfüggő) közötti egész számot ad vissza. Ha ennek veszed a kilences maradékát, 0 és 8 közötti számokat kapsz.
Szerk.: Eh, lassú voltam.
-
Jester01
veterán
válasz
shinodas
#3206
üzenetére
A srand inicializálja a véletlenszám generátort valami kiinduló érték alapján. Azonos kiindulási értékből mindig azonos sorozat lesz (debuggoláshoz jó például). Hogy mindig más legyen, az aktuális idő van megadva.
A rand() az visszaad egy egész számot a [0, RAND_MAX] intervallumból. A % az nyilván a maradékképzés, tehát végül is a [0, 8] intervallumban fogsz számokat kapni.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Soundbar, soundplate, hangprojektor
- Racoon City árnyékában: Teszteltük a Resident Evil Requiemet
- GL.iNet Flint 2 (GL-MT6000) router
- PlayStation 5
- Az aktuális Xbox konzolokon is megfogja majd a játékos kezét a Copilot
- Star Wars rajongók
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Hivatalos a OnePlus 13 startdátuma
- További aktív témák...
- iPhone 13 128GB 100% Green (1év Garancia) - ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- BESZÁMÍTÁS! 1TB Samsung 980 M.2. NVMe SSD meghajtó garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I7 4770K / GTX 1060 6GB /16GB RAM /250SSD + 500GB SSHD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


