- Google Chrome
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Az USA tisztifőorvosa figyelmeztető címkét ragasztana a közösségi médiára
- SkyShowtime
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Aliexpress tapasztalatok
- Milyen NAS-t vegyek?
- Crypto Trade
- Ubiquiti hálózati eszközök
Új hozzászólás Aktív témák
-
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.
[ Szerkesztve ]
Jester
-
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.
[ Szerkesztve ]
“All nothings are not equal.”
-
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
[ Szerkesztve ]
Ú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!
- MSI MAG281URF Gamer Monitor!28"/4k/144hz/Rapid IPS/1ms/Freesync-G-sync/HDMI 2.1/HDR400/Beszámítás!
- LG 38GN950 Ívelt Gamer monitor!38"/3840x1600/Nano IPS/160hz/1ms/Gsync-Freesync/Beszámítás
- LG 50PN450B TV eladó
- Eladó Gamer PC i5 8600K - RoG Rx580 8GB 16GB DDR4 500GB NVme
- Garanciális Corsair HS80 RGB USB