Hirdetés
- Milyen okostelefont vegyek?
- OnePlus 15 - van plusz energia
- Kijavították az iPhone Air legfőbb hibáját
- Honor 50 - apám nevében
- Poco F8 Pro – titkos favorit lehet belőle
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 15T Pro - a téma nincs lezárva
- iPhone topik
- Honor Magic6 Pro - kör közepén számok
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
Ú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!
- Vicces képek
- Anglia - élmények, tapasztalatok
- Batch programozás
- Nyaralás topik
- Milyen okostelefont vegyek?
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
- Elektromos autók - motorok
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- TCL LCD és LED TV-k
- Autós topik
- További aktív témák...
- Új Mac Studio M4 Max 2025 14C CPU /32C GPU / 36GB RAM / 512GB
- Cooler Master V550 80+ Gold moduláris táp
- 3090Ti videokártyát keresek megvételre .
- Szép állapotban Lenovo ThinkPad T14 Gen 2 /i5-1145G7/16 GB/256 SSD/FHD/IPS/Gari ÚJ fedlap és kijelző
- HP EliteBook 840 G11 Ultra 7 / 16GB RAM / 512GB SSD / FHD+ IPS / Garancia 2027.11.
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 15 Pro 128GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen
- Apple Imac 21,5 Inch, Late 2015! Intel Core I5 + Intel Iris Pro Graphics. 1TB Háttértár!
- 173 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



